[perl: récuperer des donneés d'un .txt]

Fermé
margoFBS Messages postés 2 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 avril 2007 - 27 avril 2007 à 14:10
margoFBS Messages postés 2 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 avril 2007 - 27 avril 2007 à 15:45
Bonjour,
je suis un nouveau dans ce forum, et je suis un novice de perl.
j'essaye de récupérer des données d'un fichier texte.
la situation est que dans le fichier .txt j'ai plusieurs mots clés qui m'indique le début d'une commande et après j'ai plusieurs messages de sorties, j'essaye de récupérer ces messages.
merci d'avance , de m'aider à avoir le bon code
je voudrais bien vous faire part de mon fichier .txt mais il est très long
help.

voila le bout de code que j'ai codé "mon premier"
#!/usr/bin/perl  -w

use warnings;use strict;
# ouvrir le fichier en lecture est ce que c'est juste comme ça  ou il faut la mettre comme ça : "c/doument and setting/farid.bureau/9cegetel/test_out"
open F_LIRE,"C:\Documents and Settings\farid\Bureau\9cegetel\test_out"
   or die "E/S : $!\n";

# ouvrire un autre fichier en ecriture (pour les résultats'
open F_ECRIRE,">> resultat"
   or die "E/S : $!\n";
 
#  détecter la commande SRFIL
m/SRFIL/; # j'éi besoin de faire la même chose pour plusieurs chaines = SRFIL; ESMIN; GLRIL; ALAIL; ANOIL; NSSIN; DMPIL; 

#k ecrire dans le fichier résultat le paragrape de la commande
# debut de ligne:     TRAITEMENT TDRHM0 ACC /fin de pargraphe :     TRAITEMENT TDRHM0 EXC
while(<F_LIRE>){
  print F_ECRIRE if /^    TRAITEMENT TDRHM0 ACC/.../^\    TRAITEMENT TDRHM0 EXCs*$/;
  
}   

close FICHIER;
A voir également:

1 réponse

margoFBS Messages postés 2 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 avril 2007
27 avril 2007 à 15:45
hello
j'ai essayé d'améliorer le code
#!/usr/bin/perl  -w
#!/C:/Program Files/LuckaSoft/EngInSite Perl Editor/perle.exe

use warnings;use strict;
# ouvrir le fichier en lecture est ce que c'est juste comme ça  ou il faut la mettre comme ça : "c/doument and setting/farid.bureau/9cegetel/test_out"
open F_LIRE,"C:/Documents and Settings/farid/Bureau/9cegetel/test_out.txt"
   or die "E/S : $!\n";

# ouvrire un autre fichier en ecriture (pour les résultats'
open F_ECRIRE,">> C:/Documents and Settings/farid/Bureau/9cegetel/resultat.txt"
   or die "E/S : $!\n";
 
#  détecter la commande SRFIL
m/SRFIL/; # j'éi besoin de faire la même chose pour plusieurs chaines = SRFIL; ESMIN; GLRIL; ALAIL; ANOIL; NSSIN; DMPIL; 

#k ecrire dans le fichier résultat le paragrape de la commande
# debut de ligne:     TRAITEMENT TDRHM0 ACC /fin de pargraphe :     TRAITEMENT TDRHM0 EXC
while(<F_LIRE>){
  print F_ECRIRE if /^    TRAITEMENT TDRHM0 ACC/.../^\    TRAITEMENT TDRHM0 EXCs*$/;
  
}   

close F_LIRE;
close F_ECRIRE;

0