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 Delphi Discussion :

Supprimer une ligne dans un fichier


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 144
    Points
    144
    Par défaut Supprimer une ligne dans un fichier
    Salut.
    Je dois nettoyer un fichier. Dans ce fichier se trouvent plusieurs lignes que je dois traiter. Avant de traiter ce fichier, je dois le nettoyer, c'est à dire supprimer des lignes dans celui-ci. Je ne sais pas comment faire pour supprimer une ligne.
    Voici ce qu'il faut faire; transformer ça:

    Ligne1QuiVaBien
    Ligne2QuiVaPasBien
    Ligne3QuiVaBienAussi

    En ça:

    Ligne1QuiVaBien
    Ligne3QuiVaBienAussi


    Aprés avoir ouvert le fichier, existe t'il une commande pour supprimer directement une ligne dans le fichier ? Ou le seul moyen est il de créer un autre fichier en recopiant uniquement les bonnes lignes?
    Merci de vos réponses

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Utilise une TStringList 8)

    De mémoire, ca donne un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with TStringList.Create do
    try
      LoadFromFile('Test.txt');
      Delete(3);
      //...
    finally
      Free;
    end;
    Bon développement !

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    il n'y a pas a ma connaissance de possibilité pour supprimer directement la ligne mais sinon je t'ai trouvé ca sur le forum.... une petite recherche quoi !!!!
    http://www.developpez.net/forums/viewtopic.php?t=77718
    http://www.developpez.net/forums/viewtopic.php?t=57645
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    On ne peux pas supprimer directement une ligne d'un fichier.

    Donc deux solutions :
    1-Ton fichier est un fichier de type texte et n'est pas trop gros (pourrait tenir en mémoire) dans ce cas tu peux utiliser la méthode de Smortex (celle décrite dans le lien qu a fourni Mercilius... car ce qu il a donné de mémoire est incomplet... il manque le SaveToFile('C:\Test.txt'); )

    2-Ton fichier est gros ou contient une structure ou du binaire...
    Tu peux gérer les suppressions de deux manières :
    a/ Recopie enregistrement (ligne) par enregistrement dans un autre fichier en excluant les lignes à supprimer. Puis suppression du fichier d'origine et renommage du nouveau fichier.
    b/Se gérer un autre fichier genre un fichier d'index.. qui ne référencerait que les enregistrements 'valides' du fichier principale. Tu vas me dire mais comment supprimer une ligne du fichier index ?? en fait il faut plus gérer une sorte de liste chainée de cet index oubien se débrouiller pour que tu puisse le gérer grace à un stringlist tout en mémoire...

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

Discussions similaires

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

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