Bonjour,
je parse un fichier, et j'affiche certaines lignes en fonction de différentes expressions régulières.
Dans un cas particulier, je voudrais afficher la ligne courante, ainsi que les 9 lignes suivantes.
J'ai essayé d'include un while sur <FILEH> dans le traitement, mais ça m'affiche en boucle la ligne qui active cond3. Pareil avec un for où j'avais mis <FILEH> dans mon incrément.
Y a t'il une méthode pour faire ça dans le if ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 while(<FILEH>) { if(cond1) { ... } if(cond2) { ... } if(cond3) { # afficher la ligne courante et les 9 suivantes # traitement } }
Sur un autre fichier, j'ai fait comme suit, avec un compteur pour remettre affich à 0 :
Mais je me demande si il n'est pas possible de faire autrement, je voudrais éviter la multiplication des if pour faciliter la relecture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while(<FILEH>){ if(cond1){ $affich=1; $cpt=0} if($affich==1) { print $_; $cpt++} if($cpt==10){ $cpt=0; $affich=0 } }
Partager