fichier en lecture/ecriture

fichier en lecture/ecriture - Perl - Programmation

Marsh Posté le 16-03-2005 à 13:29:21    

j'ai un peiti pb avce le code suivant:
 

Code :
  1. $fichier = "H:\\test.txt";
  2. open(F,"+<$fichier" ) || die("Erreur de lecture de $fichier, Erreur: $!\n" );
  3. while($ligne=<F> ){
  4.         print "ligne\n";
  5.         $ligne=~s/t/p/g;
  6.         print "ligne\n";
  7. }#fin while


 
mon fichier test.txt ne se met pas à jour . Théoriquement le pgr remplace les t par des p les print sont ok
mais le fichier ne se met pas à jour alors qu'il est en lecture/ecriture
 
merci pour un petit coup de pouce

Reply

Marsh Posté le 16-03-2005 à 13:29:21   

Reply

Marsh Posté le 16-03-2005 à 13:39:30    

lorsque tu utilises un "<" dans la fonction open() tu ouvres le fichier en lecture
il faut utiliser un ">" pour l'ouvrir en écriture
le mieux est de remplacer le fichier par un autre fichier (tu te feras moins cher avec les boucles bizarres)
 

Code :
  1. $fichier_in = "H:\\test.txt";
  2. $fichier_out = "H:\\test2.txt";
  3. open (FILE_IN, "$fichier" ) || die "Erreur de lecture de $fichier, error_msg = $!\n" );
  4. my @all_lines = <FILE_IN>;
  5. close FILE_IN;
  6. open (FILE_OUT, ">$fichier_out" );
  7. foreach $item (@all_lines)
  8. {
  9.    $item =~ s/t/p/g;
  10.    print FILE_OUT $item;
  11. }
  12. close FILE_OUT;


Code à tester...


Message édité par couak le 16-03-2005 à 13:39:45
Reply

Marsh Posté le 16-03-2005 à 14:38:24    

couak a écrit :

lorsque tu utilises un "<" dans la fonction open() tu ouvres le fichier en lecture
il faut utiliser un ">" pour l'ouvrir en écriture
le mieux est de remplacer le fichier par un autre fichier (tu te feras moins cher avec les boucles bizarres)
 

Code :
  1. $fichier_in = "H:\\test.txt";
  2. $fichier_out = "H:\\test2.txt";
  3. open (FILE_IN, "$fichier" ) || die "Erreur de lecture de $fichier, error_msg = $!\n" );
  4. my @all_lines = <FILE_IN>;
  5. close FILE_IN;
  6. open (FILE_OUT, ">$fichier_out" );
  7. foreach $item (@all_lines)
  8. {
  9.    $item =~ s/t/p/g;
  10.    print FILE_OUT $item;
  11. }
  12. close FILE_OUT;


Code à tester...


 
 
 
 
merci bcp !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed