[batch] analyser et restructurer un fichier texte
Forum Programmation : [batch] analyser et restructurer un fichier texte
Bonjour à tous et merci d'avance pour votre lecture du post.
Je souhaiterais faire la chose suivante:
je possède un fichier texte "A" qui possède un certain nombre de lignes avec une structure bien particulière pour être plus concret un exemple:
12/03/2004;blablabla;erreur;blablablabla
13/03/2004;blablabla;erreur;blablablabla
çàd un fichier de log qui se rempli au fur et à mesure.
Ce fichier ne me convient pas dans sa forme "A" et j'aimerais qu'il apparaisse après transformation comme suit:
12/03/2004 blablabla erreur blablablabla
13/03/2004 blablabla erreur blablablabla
çàd retirer les ";" et mettre des espaces à la place et ce, sauvegarde dans un nouveau fichier texte "b"
J'aimerais faire un programme batch tout bête faisant cela et travaillant toutes les 10 minutes par exemple.
Comment puis-je opérer proprement?
Merci beaucoup
F-Xavier
Salut tu veux faire ca dans quel langage?!!!
Je désirerais faire un fichier Dos batch. La machine qui log les événements est en nt4.
Excusez moi j'avais oublié de préciser
F-Xavier
Avec des vrais shells, et des vrais outils (Cygwin par exemple) c'est possible. Batch me parait vraiment trop rudimentaire pour ça.
Hello,
C'est possible avec un batch.
Si A.TXT est le fichier d'origine, il suffit de créer le fichier MOULINETTE.BAT suivant :
for /f "tokens=1 delims=;" %%a in (a.txt) do set un=%%a
for /f "tokens=2 delims=;" %%a in (a.txt) do set deux=%%a
for /f "tokens=3 delims=;" %%a in (a.txt) do set trois=%%a
for /f "tokens=4 delims=;" %%a in (a.txt) do set quatre=%%a
echo %un% %deux% %trois% %quatre% >b.txt
Ca marche sous Windows 2000 et Xp, par contre sous NT faut tester mais je crois pas que le jeton "tokens" soit géré sous cet OS.
Ou en javascript:
| Citation :
|
où on appel la routine var WK_a=ALL('les données avec ;','le caractère séparateur si diiférent du caractère par défaut'). Le caratère par défaut est: ";".
Voila, voila, a+
merci beaucoup. Je vais de ce pas tester vos solutions.
Oups ! J'était un peu fatigué hier soir, en plus après vérif le script ne marchait pas correctement ...
En fait c'est beaucoup plus simple, en une seule ligne
dans un fichier .BAT :
for /f "tokens=1-4 delims=;" %%a in (a.txt) do echo %%a %%b %%c %%d >> b.txt
Attention: J'ai édité le script.
Oh pas grand chose. Juste un } mal placé. (voir un peu plus haut)
je suis en vacances mais j'ai testé sur une bribe de fichier texte cela a l'air de fonctionner mais je n'ai pas encore poussé loin les vérifications ce que je ferai en rentrant. En tout cas merci beaucoup de cette réponse, cela aidera aussi peut être les suivants.
Il y a 823 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
