Suppression de ligne dans un fichier - Perl - Programmation
Marsh Posté le 16-09-2015 à 15:39:02
J'avais commencé par le code suivant :
open(FILE, "< $FILENAME" ) or die ("prob a l'ouverture du fichier" );
@save = <FILE>;
close(FILE);
foreach (@save) { $_ = "" if ($_ =~ m/$Fichier_a_supprimer/);
chomp $_;
}
open(FILE, ">$FILENAME" ) or die ("prob a l'ouverture du fichier" );
foreach (@save) { print FILE $_."\n" if ($_);
}
close(FILE);
Ce code m'efface bien la ligne voulu mais ne supprime pas toutes les lignes avant.
Marsh Posté le 16-09-2015 à 17:14:02
open(FILE, "< $FILENAME" ) or die ("prob a l'ouverture du fichier" );
@save = <FILE>;
close(FILE);
OK!
A ce niveau, tu peux faire un
chomp @save;
Puis, la fonction standard splice va être ton amie...
Un petit exemple:
Code :
|
je te laisse appliquer cela à ton cas particulier.
A+,
Marsh Posté le 17-09-2015 à 10:47:20
Merci pour ta réponse, j'ai essayé d'adapter le code mais je n'ai pas accès à "use Modern::Perl;"
<Can't locate Modern/Perl.pm in @INC (@INC contains:...>
Existe t'il une autre solution ?
Marsh Posté le 17-09-2015 à 13:19:11
Citation : je n'ai pas accès à "use Modern::Perl;" |
Eh bien tu l'installes, c'est gratuit.
Pour savoir comment faire dis nous sous quel OS tu travailles. Pour StrawberryPerl (sous Windows) un simple cpan Modern::Perl en ligne de commande suffit.
Marsh Posté le 17-09-2015 à 14:50:03
Il peut remplacer
use Modern::Perl;
par
use strict;
use warnings;
C'est juste que use Modern::Perl; ne fait qu'une ligne au lieu de deux (et fait aussi d'autres trucs cools).
A+,
Marsh Posté le 16-09-2015 à 15:20:27
Bonjour,
Je souhaiterais supprimer toutes les lignes d'un fichier qui se trouvent avant une ligne donnée.
Par exemple, mon fichier contient les lignes suivantes :
Admettons qu'une variable $ligne contienne "tutu", j'aimerais supprimer tout ce qui se trouve avant cette variable.
C'est à dire "toto et tata" devraient disparaitre.
Quelqu'un pourrait me guider svp ?
Merci d'avance.