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

margoFBS Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
margoFBS Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention  
 
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