Salut,
Voilà j'ai un fichier texte fait selon là structure suivante:
'numero palette' 'emplacement'
'numero palette' 'emplacement'
'numero palette' 'emplacement'
'numero palette' 'emplacement'
'numero palette' 'emplacement'
Ce que je voudrai faire, à partir du moment où il y a 5 lignes dans le fichier, c'est décaler à chaque fois les lignes vers le bas, ainsi la 4ème devient la 5ème, la 3ème devient la 2ème, etc... et placer mon nouvel enregistrement sur la ligne 0.
Ci-dessous mon code qui contient une erreur mais je n'arrive pas à la trouver.
Avec ce code, quand on arrive à la 5ème ligne, il efface toutes les lignes du fichier et écris le nouvel enregistrement... ce qui n'est pas tout à fait ce que je souhaite
Vous pouvez m'aider?
Merci d'avance.
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 $filename="emplacement.txt"; $mode="a"; $fp=fopen($filename, "a"); if (is_writable($filename)) { //Compter le nombre de lignes $tab = file($filename); //Supprimer la 5ème ligne si elle existe if(count($tab)==5) { $provisoire=tempnam(getcwd(), "PRO"); $pr=fopen($provisoire, "w"); for($numero=0;$numero<'4';$numero++) { $zone=fgets($fp, 25); fwrite($pr, $zone); } fclose($fp); fclose($pr); $r=unlink($filename); rename($provisoire, $filename); $fp=fopen($filename, "a"); } //Se placer devant la première ligne fseek($fp, 0); //Copier le dernier enregitrement $zone1=$numero_palette." "; $zone2=$emplacement."\n"; fwrite($fp, $zone1); fwrite($fp, $zone2); fclose($fp);
Partager