[TXT] Supprimer le dernier caractère

Supprimer le dernier caractère [TXT] - Shell/Batch - Programmation

Marsh Posté le 28-07-2006 à 12:16:37    

Bonjour,  
 
Je cherche à supprimer le dernier caractère de chaque ligne dans un fichier TXT en utilisant un Batch.
Mais je ne trouve rien ....  
Pourriez vous m'aider ?
 
Merci d'avance !

Reply

Marsh Posté le 28-07-2006 à 12:16:37   

Reply

Marsh Posté le 28-07-2006 à 13:28:44    

Tu dois lire le fichier ligne par ligne, en affectant celle-ci à une variable, puis utiliser :
set VAR=%VAR:~x,y%
pour enlever le dernier caractère et réécrire la variable dans le fichier de résultat.
 
for /?
et
set /?
pour plus d'infos.
 
Par contre, cette méthode supprime les lignes vides. Donc à toi de voir si ça te convient.

Reply

Marsh Posté le 04-08-2006 à 18:30:44    

wackevat a écrit :

Tu dois lire le fichier ligne par ligne, en affectant celle-ci à une variable, puis utiliser :
set VAR=%VAR:~x,y%
pour enlever le dernier caractère et réécrire la variable dans le fichier de résultat.
 
for /?
et
set /?
pour plus d'infos.
 
Par contre, cette méthode supprime les lignes vides. Donc à toi de voir si ça te convient.


 
 
Bonjour, j'ai essayer ceci chez moi, mais ça ne fonctionne pas:
 

Code :
  1. For /f "delims=" %%i In ('Type fichier.txt') Do Set VarT=%%i
  2. Set Var=%VarT:~x,y%
  3.   echo %Var%

Reply

Marsh Posté le 04-08-2006 à 19:13:24    

- pour inclure plusieures commandes dans une boucle for, tu dois utiliser les parenthèses :

Code :
  1. for ... do (
  2.   commande1
  3.   commande2
  4.   ....
  5. )


 
- consulte ce topic pour les questions concernant l'affectation des variables dans une boucle :
http://forum.hardware.fr/hardwaref [...] 2792-1.htm

Reply

Marsh Posté le 04-08-2006 à 19:18:26    

Merci beaucoup
 
Je sais pour les variable, on ne peut pas utiliser une variable qu'on créer dans une boucle dans cette même boucle.
 
Mais ça ne vient pas de là, le code qui est sous la boucle dans mon code ne fait pas parti de la boucle.
 
Si je fair ceci ça passe:
 
For /f "delims=" %%i In ('Type fichier.txt) Do Set Var=%%i
  echo %Var%


Message édité par webding le 04-08-2006 à 19:20:46
Reply

Marsh Posté le 04-08-2006 à 22:40:25    

J'espère que tu as quand même lu l'aide de set comme j'avais préconisé et n'as pas gardé x et y tels quels ?

Reply

Marsh Posté le 04-08-2006 à 22:49:30    

Je ne suis pas minakator, moi je suis webding.
 
J'ai quand même lu l'aide de setn mais je n'ai pas trouver.
 
Je ne sais pas ce qu'il faut mettre a la place de x et y.

Reply

Marsh Posté le 07-08-2006 à 14:25:33    

Aller essaye ça :  
 

Code :
  1. SETLOCAL enabledelayedexpansion
  2. for /f %%a in (test.txt) do
  3. (
  4. set variable=%%a
  5. echo !variable:~0,-1!>>resultat.txt
  6. )


 
A+

Reply

Marsh Posté le 07-08-2006 à 14:33:05    

Sa marche pas chez moi

Reply

Marsh Posté le 08-08-2006 à 12:00:14    

.... si tu veut supprimmer les derniers caractères de chaque ligne ce trouvant dans "test.txt" et bien cela fonctionne.
Evidemment ici test.txt et ton .bat doivent être dans le même répertoires sinon il faut changer le chemin.

Reply

Marsh Posté le 08-08-2006 à 12:00:14   

Reply

Marsh Posté le 08-08-2006 à 17:07:23    

Por tn ils sont dans le même répertoire

Reply

Marsh Posté le 08-08-2006 à 17:10:15    

Non mais qu'ont-ils tous avec le batch ?
Y'a un concours ? [:pingouino]

Reply

Marsh Posté le 09-08-2006 à 16:59:52    

hé bé il faut avouer que c'est parfois bien pratique et que c'est plus facile à apprendre que du vb, c, ... surtout pour des petites tâches comme ça.
 
Mais bon c'est évident qu'avec un peu de courage il serait préférable d'apprendre un langage plus puissant car le batch est un peu limité.
 
Chacun son domaine ...

Reply

Marsh Posté le 09-08-2006 à 17:01:42    

Vraiment, je vois pas en quoi c'est plus dur à apprendre que VB (en plus c'est moins bien documenté)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed