Bonjour,
tout d'abord, merci de bien vouloir m'aider à résoudre ce problèm.
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.
dans un premier temps je fais un petit test pour récuperer les messages d''une commande.
voila le bout de code que j'ai codé "mon premier"
dans un premier temps je fais un petit test pour récuperer les messages d''une commande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
#!/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;