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 :

Supprimer une ligne dans un fichier texte


Sujet :

Langage PHP

  1. #1
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut Supprimer une ligne dans un fichier texte
    bonjour a tous
    je cherche un script simple pour pouvoir supprimer un ligne dans un fichier texte j'ai beaucoup chercher c dernier temps et je n'ai rien trouver de valable si qq'un pourrais me donner le script qui va bien ce serai vraiment simpa

    merci a tous

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Si le fichier texte n'est pas trop long, tu peux tout le charger dans un tableau grâce à file (ça va te créer un tableau ou chaque case correspond à une ligne).
    Après tu supprimes les lignes qu'il faut, et tu réécris le fichier.
    C'est assez bourrin comme méthode mais pour des petits fichiers ça devrait suffir.

  3. #3
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    j'ai deja le script de ce que tu me dit mais il ne fonctionne pas j'ai une erreur dedans et je comprend pas ou
    je te file mon script

    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
     <?
        $index=0;
        $lignes = file('../liste/voiture.txt');
        for($i = 1 ; $i <= count($lignes) ; $i++)
        {
            list($marque, $model, $km, $num, $annee) = explode(';', $lignes[($i - 1)]);
            if($num = $num)
            {
                $index = $i;
            }
        }
        $lignes[$index]='';
        $fp=fopen('../liste/voiture.txt','w+');
        for($j=1 ; $j <= count($lignes) ; $j++)
        {
            fwrite ("\r\n" .$lignes.[$j]);
        }
        fclose($fp);
     
    ?>

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Hum... C'est censé faire quoi ça ? (la comparaison c'est == pas =, à moins que tu fasses une affectation + test mais je vois pas trop l'intérêt vu que tu définis $num avant).
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    le dexieme $num est la donner rechercher
    il faut peu etre que je mettre autre chose parce que il peu y avoir conflie non

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par bsketeur
    le dexieme $num est la donner rechercher
    il faut peu etre que je mettre autre chose parce que il peu y avoir conflie non
    Bah oui ça semble logique que si deux variables ont exactement le même nom ça pose un léger problème
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    j'ai changer tout ca j'ai fait qq modif autre mais j'ai toujours un probleme il ne veux pas reecrir dans mon fichier j'ai une erreur je vous redonne le code et je ous donne l'erreur


    Warning: Wrong parameter count for fwrite() in c:\program files\easyphp1-8\www\projet\professionels\suppression\traitsupp.php on line 17

    script :

    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
     <?
        $num_mot=$_POST['num_mot'];
        $index=0;
        $lignes = file('../liste/voiture.txt');
        for($i = 1 ; $i <= count($lignes) ; $i++)
        {
            list($marque, $model, $km, $num, $annee) = explode(';', $lignes[($i - 1)]);
            if($num == $num_mot)
            {
                $index = $i;
            }
        }
        $lignes[$index]='';
        $fp=fopen('../liste/voiture.txt','w+');
        for($j=1 ; $j <= count($lignes) ; $j++)
        {
            fwrite("\r\n" .$lignes[($j - 1)]);
        }
        fclose($fp);
     
    ?>

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pour une fois le message d'erreur est très explicite, il n'y a pas le bon nombre d'arguments pour fwrite (il manque le lien vers le fichier...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite($fp, "\r\n" .$lignes[($j - 1)]);
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    c'est a dire je comprend pas trop

  10. #10
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    c bon j'ai compris le truc du fichier mais j'ai une autre erreur que je comprend pas de trop c a la ligne

    list($marque,$model,$km,$num,$annee) = explode(';', $lignes[$i]);

    et le mes que mes 4 dernier $truc ne sont pas defini

  11. #11
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par bsketeur
    c'est a dire je comprend pas trop
    Je viens de te mettre la correction

    Sinon la doc c'est sympa pour comprendre aussi :
    http://fr.php.net/manual/fr/function.fwrite.php



    Edit : Ok pour fwrite

    et le mes que mes 4 dernier $truc ne sont pas defini
    En français ça donne quoi ?

    Sinon toujours pareil
    http://fr.php.net/manual/fr/function.explode.php
    http://fr.php.net/manual/fr/function.list.php
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  12. #12
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Notice: Undefined offset: 4 in c:\program files\easyphp1-8\www\projet\professionels\suppression\traitsupp.php on line 7

    Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\projet\professionels\suppression\traitsupp.php on line 7

    Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\projet\professionels\suppression\traitsupp.php on line 7

    Notice: Undefined offset: 1 in c:\program files\easyphp1-8\www\projet\professionels\suppression\traitsupp.php on line 7
    voila la message d'erreur c'est par rapport a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     list($marque, $model, $km, $num, $annee) = explode(';', $lignes[($i - 1)]);

  13. #13
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    ça veut dire que les lignes 1, 2, 3, 4 de ton tableau n'existent pas... je ne connais pas file() mais j'imagine que ça veut dire que les premieres lignes de ton fichier sont vides ?

    tu devrais faire une trace de la boucle qui lit ton tableau pour voir ce qu'il contient...

    = rajouter un echo "<br />".$lignes[$i-1];
    juste au dessus du list() que tu mets temporairement en commentaires...

  14. #14
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    c une chose que j'ai deja faite mais j'ai toujours les meme erreur je ne comprend pas aider moi svp

  15. #15
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Fais un var_dump($lignes) juste après avoir initialisé $lignes.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  16. #16
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    c quoi cette variable la je connais pas j'ai jamais entendu parler

  17. #17
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    lorsque je met cela il ne renvoie NULL

  18. #18
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $lignes = file('../liste/voiture.txt');
    var_dump($lignes);
    for($i = 1 ; $i <= count($lignes) ; $i++)
    Si ça te renvoie NULL c'est qu'il n'y a rien dans $lignes donc problème...


    c quoi cette variable la je connais pas j'ai jamais entendu parler
    1 - la remarque me fait peur c'est pas une variable mais une fonction var_dump...
    2 - pour répondre aux questions comme ça il suffit d'aller voir la doc...
    http://www.php.net/manual/fr

    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  19. #19
    Inactif
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    ouais mais non c bon j'ai compris a quoi elle servais et elle me renvoie plus null elle me renvoie les donner de mon tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,32,1998 
    1array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,34,1998 
    2array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,33,1998 
    3array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,35,1998 
    4array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,36,1998 
    5array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,37,1998 
    6array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,38,1998 
    7array(9) { [0]=> string(2) " " [1]=> string(27) "peugot;406;134567;32;1998 " [2]=> string(27) "peugot;406;134567;34;1998 " [3]=> string(27) "peugot;406;134567;33;1998 " [4]=> string(27) "peugot;406;134567;35;1998 " [5]=> string(27) "peugot;406;134567;36;1998 " [6]=> string(27) "peugot;406;134567;37;1998 " [7]=> string(27) "peugot;406;134567;38;1998 " [8]=> string(25) "peugot;406;134567;39;1998" } peugot,406,134567,39,1998 
    8

  20. #20
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Dans ta boucle ajoute ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($i = 1 ; $i <= count($lignes) ; $i++)
        {
            echo $lignes[$i - 1] . "<BR>";  
         // list($marque, $model, $km, $num, $annee) = explode(';', $lignes[($i - 1)]);
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Supprimer une ligne dans un fichier texte
    Par Phil.ippe dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/07/2007, 18h44
  2. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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