IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

pb de décalag de lignes dans un fichier


Sujet :

Langage PHP

  1. #1
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut pb de décalag de lignes dans un fichier
    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?

    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);
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Exemple pour ajouter une ligne vide toutes les 5 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $fname='liste.txt'; 
    $file=fopen($fname,'r+'); 
    $list=explode("\n",fread($file,filesize($fname))); 
    fclose($file);
     
    $cnt=count($list);
    $file=fopen($fname,'w+'); 
    for($x=0;$x<$cnt;$x++){
     if($x%5==0) fwrite($file,"\n");
     fwrite($file,$list[$x]."\n");
    }
    fclose($file);
    ?>

    Lien tout en bas à gauche de cette fenêtre
    De retour parmis vous après 10 ans!!

  3. #3
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Merci, il suffisait juste faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fp=fopen($filename, "a+");
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fp=fopen($filename, "a");
    Magnifique!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. décalage de ligne dans un fichier txt
    Par oliv27400 dans le forum MATLAB
    Réponses: 2
    Dernier message: 29/09/2010, 08h34
  2. [FSO] Effacer une ligne dans un fichier
    Par Johnbob dans le forum ASP
    Réponses: 4
    Dernier message: 30/05/2007, 16h23
  3. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  4. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo