Tom's Guide > Forum > Programmation > [batch] analyser et restructurer un fichier texte

[batch] analyser et restructurer un fichier texte

Forum Programmation : [batch] analyser et restructurer un fichier texte

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut tu veux faire ca dans quel langage?!!!



Répondre à Shinji62

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

Répondre à nouveauvenu

Avec des vrais shells, et des vrais outils (Cygwin par exemple) c'est possible. Batch me parait vraiment trop rudimentaire pour ça.

Répondre à lissyx

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.

Répondre à Webfred

Ou en javascript:

Citation :


function ALL(objet,call)
{
var myobj=""
if(call=="" )call=";"
for(var i_all=0;i_all<objet.length;i_all++){
if(objet.charAt(i_all)==call){
myobj+=' '}
else{
myobj+=objet.charAt(i_all)}}
return myobj
}


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+

Répondre à Mdy@IDN

merci beaucoup. Je vais de ce pas tester vos solutions.


Répondre à nouveauvenu

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

Répondre à Webfred

Attention: J'ai édité le script.
Oh pas grand chose. Juste un } mal placé. (voir un peu plus haut)

Répondre à Mdy@IDN

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.

Répondre à nouveauvenu
Tom's Guide > Forum > Programmation > [batch] analyser et restructurer un fichier texte
Aller à :

Il y a 823 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens