|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 348 ![]() |
Salut,
Je suis en train d'essayer de faire un script perl pour supprimer les lignes d'un fichier qui finissent par "\n"\r\n .Ca sera plus clair avec un exemple de la tronche du fichier : Code :
MINISIS , un truc de gestion de bibliothèque d'un autre temps... Bref.Faut donc que je détecte les lignes finissant par la chaine de caractère "\n" (j'insiste, la chaine, par le caractère de fin de ligne Je suis développeur PHP (Apache/ZF/Jquery & tout l'battaclant), je veux faire ça en PERL pour la rapidité d'éxecution (le fichier est conséquent), mais je n'y pipe rien. Le serveur est sous Windows Bref, une bonne âme pour m'aider à faire marcher / optimiser ce script??? Pour l'instant j'arrive pas a detecté la chaine "\n" (d'ailleurs, le substr est il le moyen le plus rapide?)... Code :
__________________
Stay in Bed .. Save Energy |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 570 ![]() |
Pas besoin de la fonction substr en principe
ou devrait suffire. J'ai imaginé une fonction concat() parce qu'il me semble que ta concaténation est incorrecte. Tu veux sans doute la prochaine ligne, pas la dernière.
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés. |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 348 ![]() |
Ah merci bien, j'ai pu modifier et au bout de quelques test, c'est bon, le script gagnant :
Code :
Merci!!
__________________
Stay in Bed .. Save Energy |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 570 ![]() |
Je ne comprends toujours pas bien pourquoi tu concatènes avec la ligne précédente et pas avec la ligne suivante, mais, enfin, si c'est ce dont tu as besoin...
Pour info, peut sans doute se réécrire plus simplement: car une chaîne vide s'évalue à faux. De même pour la condition suivante:
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 348 ![]() |
Merci pour ces infos, je modifie.
Je stocke parce qu'au moment ou je traite (dans la boule) je ne connais pas la ligne suivante (enfin, j'imagine qu'il doit y avoir un moyen, une seconde boucle sur le fichier par exemple). Donc je stocke la ligne en cours sans l'écrire. Une fois à la ligne "suivante", je refait le même traitement. Si la ligne est normale, alors j'écris le stockage avant d'écrire la ligne en cours. Au final ça revient au même, c'est juste que j'ai la flême de chercher comment accéder à la "ligne suivante" depuis la "ligne en cours" Bref merci pour le coup de main, c'était mon 1er script en PERL !
__________________
Stay in Bed .. Save Energy |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com