Page 1 sur 1

Ecrire sur la nième ligne d'un fichier texte

Posté : 26 oct. 2005, 14:11
par Francis ch
Bonjour !

Tout est dans le titre :-)
imaginez un fichier contenant (par exemple) 3 lignes:

Fichier toto.txt
2
9
7

Ce que je cherche a faire c'est de coder quelquechose permettant de modifier la valeur de la nième (disons la deuxième) ligne de
mon fichier texte (sans effacer le contenu des autres lignes).

J'ai essayé ca:
<?

$fichier=fopen("../toto.txt", 'r+'); // ouverture du fichier en lecture et ecriture
fseek ($fichier,257);   // pour me mettre au debut de la deuxième ligne ???
fwrite($fichier, "325"); // écriture de 325 sur la deuxième ligne
fclose( $fichier );

?>
Donc, "ca marche" sauf que ce bout de code me donne ca dans mon fichier texte:

2
9
7


325

donc j'ai ensuite essayé avec différentes valeurs pour fseek (ex: 2,1 ...) mais j'ai pas reussi a ECRIR 325 en remplacement
de la deuxième ligne de mon fichier .... i.e réussir à obtenir cela:

Contenu de toto.txt

2
325
7


Si quelqu'un a une petite idée, elle est bienvenue


Merci,


Francis

Posté : 26 oct. 2005, 14:45
par finipe
*à prendre avec circonspection, je suis pas sûr du tout*

Regarde du côté de fopen("../toto.txt", 'w+'). Le w remplace le contenu de ton fichier, alors que le r insère.

Posté : 26 oct. 2005, 17:53
par Fredo
Salut Francis ch,

Je recherche à faire quelque chose de très similaire à ton problème.

Truc m'a aidé à trouver la solution, mais il faudra que tu adaptes le script. Je trouve que ce n'est pas super comme solution. Ca marche, mais ce n'est pas très élégant. Si tu trouves mieux, je suis preneur...

http://www.phpfrance.com/forums/voir_sujet-9857.php

Fredo