Bonjour,
je voudrais juste savoir comment l'on fait pour supprimer une ligne quand on a son numéro.??
Merci d'avance.
Bonjour,
je voudrais juste savoir comment l'on fait pour supprimer une ligne quand on a son numéro.??
Merci d'avance.
Tu ne peux pas supprimer une ligne directement d'un fichier.
Il faut que tu lises tout le fichier ligne a ligne (comme tu le fais dans l'autre post il me semble) ensuite tu crées une sorte de "tampon" dans lequel tu stockes toutes les lignes les unes a la suite des autres. Comme ca, la ligne que tu souhaites enlever, tu ne l'ajoutes pas au tampon.
Et a la fin tu réécris ton tampon dans le fichier a la place de ce qu'il y avait avant.
Si tu veux éviter de mémoriser TOUT le fichier en mémoire, dans ce cas il faut que tu crées un nouveau fichier, que tu écris ligne a ligne dedans (la ligne que tu es en train de lire) sauf celle(s) que tu ne veux pas. Et a la fin tu supprimes le fichier de départ et tu renommes le nouveau fichier pour le remplacer.
voici mon code:
Avant, j'ai récupéré, la valeur de $constante, $num est le numéro de la ligne à "supp/modifié" .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $fic = fopen($fichier, "r" ); for ($i = 1; $i<$num; $i++)// On se place directement à la ligne souhaitée { $string .= fgets($fic); } $string .= "define(\"" . $constante . "\", \"" . $nvaleur . "\" );\n"; while (!feof($fic)) { $string .= fgets($fic); } fclose($fic); $fic = fopen($fichier, "w+" ); fputs($fic, $string); fclose($fic);
Je n'ai pas trop compris comment je devais faire?
Pouvez vous m'aidez svp.
Merci d'avance
Si je comprends bien ton code tu veux remplacer la ligne numéro $num par une ligne que tu crées toi meme? Et actuellement tu arrives a mettre ta ligne mais pas a retirer la précédente?
Si c'est bien le cas, en fait il faut que tu lises une ligne entre ton for et ton while sans la mémoriser dans $string.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?php // ouvre le fichier $fic = fopen($fichier, "r" ); // lit toutes les lignes jusqu'a celle qu'on veut retirer (sans la lire) for ($i = 1; $i<$num; $i++)// On se place directement à la ligne souhaitée { $string .= fgets($fic); } // il faut lire la ligne a supprimer sans la mémoriser fgets($fic); // a la place on met la ligne qu'on veut ajouter $string .= "define(\"" . $constante . "\", \"" . $nvaleur . "\" );\n"; // puis on lit la fin du fichier while (!feof($fic)) { $string .= fgets($fic); } // on ferme le fichier puis on écrit la nouvelle version fclose($fic); $fic = fopen($fichier, "w+" ); fputs($fic, $string); fclose($fic); ?>
Merci pour ton aide, ça fonctionne parfaitement.
Partager