Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2535 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Modifier la nième ligne d'un fichier texte

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modifier la nième ligne d'un fichier texte

n°1231729
arginine
Posté le 26-10-2005 à 17:32:39  profilanswer
 

Ecrir sur la nième ligne d'un fichier texte
 
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

mood
Publicité
Posté le 26-10-2005 à 17:32:39  profilanswer
 

n°1231784
omega2
Posté le 26-10-2005 à 18:22:25  profilanswer
 

http://www.nexen.net/docs/php/anno [...] .fseek.php

Citation :

fseek modifie le curseur de position dans le fichier handle . La nouvelle position mesurée en octets  ...


 
T'es certain que ta premiére ligne fait 257 octets de long? (255 caractéres + CR + LF) Moi, je vois qu'un seul caractére donc 3 octets en comptant la fin de ligne.
Quand au fwrite, ca veut pas dire "remplace moi ma ligne par telle ligne en poussant le reste plus loin" mais "écrase moi ce qui se trouve à cet endroit là même si on déborde sur la suite".
Si tu veux remplacer une ligne, il faut commencer par lire le fichier puis le travailler en mémoire et le réécrire entiérement (ou au mieux depuis le premier endroit modifié jusqu'a la fin du fichier en suprimant la fin du fichier si besoin)


Message édité par omega2 le 26-10-2005 à 18:23:35
n°1231808
nlc
Le mieux est l'ennemi du bien
Posté le 26-10-2005 à 18:53:41  profilanswer
 

Je vais avoir exactement le meme probleme.
 
Imaginons sur un serveur un fichier texte contenant :

Code :
  1. param1     =    1
  2. param2     =     toto
  3. ipAddress =     192.168.1.1


 
Si j'appelle http://xxx.xxxx.xx/change.php?param1=2
Il faut que je mette la nouvelle valeur du parametre dans le fichier...
 
Je sens que je vais m'amuser a faire ca...
A moins qu'il existe deja des bout de code tout fait ?


---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Modifier la nième ligne d'un fichier texte

 

Sujets relatifs
[ PHP ][ Resolu ] Upload et verification d'un fichier binairecomment convertir du texte en numérique
Lancer un fichier xls a partir de VB6[HTML] Largeur de cellule fixe avec retour à la ligne auto
Compter le nombre de ligne d un tableau vba excelFichier audio
Aller à la derniere ligne d'un fichier texte et recherche chaineVBA Excel UserForm bouton pour ouvrir fichier *.hlp & path dynamique
Plus de sujets relatifs à : Modifier la nième ligne d'un fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR