Aller au contenu

Supprimer des données dans un fichier texte


Seb65

Sujets conseillés

Bonsoir,

Je n'arrive pas a supprimer une ligne voir plusieurs dans un fichier texte.

Je voudrais par exemple supprimer la seconde ligne de mon fichier.

Mon fichier texte est structuré de cette façon :

Texte sur ligne 1

Texte sur ligne 2

Texte sur ligne 3

Etc...

Pour lire la première ligne pas de soucis :

$ligne1=fgets($fp,1024);

Idem pour ligne 2 :

$ligneé=fgets($fp,2048);

( Une ligne dans un fichier texte équivant à 1024 octets (= 1024 caractères = 1 Ko) )

Comment faire pour supprimer par exemple la ligne 2 ?

Merci par avance.

Lien vers le commentaire
Partager sur d’autres sites

Le mieux peut etre est d'ouvrir ton fichier et de le lire ligne par ligne, d'ajouter le contenu dans une variable en sautant la ligne 2 (ne pas la prendre en compte), puis ensuite de reecrire le contenu de ton fichier (l'ecraser), fermer ton fichier et le tour est joué :)

Modifié par smile
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

exactement...tu as un exemple de ce procédé avec cette fonction (qui n'est pas de mon cru) :

function cutline($filename,$line_no=-1) { 
 $strip_return=false;
 $data=file($filename);
 $pipe=fopen($filename,'w');
 $size=count($data);
 $skip = ($line_no==-1 ? $skip=$size-1 : $skip=$line_no-1);
 for($line=0;$line<$size;$line++) {
   if($line!=$skip) {
     fputs($pipe,$data[$line]);
   } else {
     $strip_return=true;
   }
 return $strip_return;
}

Source: http://codewalkers.com/getcode.php?id=199

Lien vers le commentaire
Partager sur d’autres sites

J'ai donné le principe ensuite les écritures peuvent différées, je ne l'aurais pas écrit comme ca mais pourquoi pas :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour lire la première ligne pas de soucis :

$ligne1=fgets($fp,1024);

Idem pour ligne 2 :

$ligneé=fgets($fp,2048);

( Une ligne dans un fichier texte équivant à 1024 octets (= 1024 caractères = 1 Ko) )

Il me semble que la valeur de 1024 octets, valeur par défaut certes, n'est qu'une valeur arbitraire. La longueur des lignes d'un fichier texte n'est pas systématiquement de 1Ko ! En fait elle est de 1 à ... un caractère marquant la fin de la ligne.

Juste pour te faire remarquer que ton code de lecture des lignes ci-dessus est faux ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...