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

C Discussion :

Supprimer une ligne dans un fichier texte


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut Supprimer une ligne dans un fichier texte
    Je souhaiterai supprimer toutes les lignes contenant une certaine chaine de caractères dans un fichier texte en C.
    Comment faire ?
    (Supprimer la ligne totalement, pas simplement l'effacer).
    Merci.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Il n'y a pas de moyen direct de faire ça en C, il faut passer par un fichier temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Ouvrir le fichier à traiter en lecture (fopen)
    Ouvrir un fichier temporaire en écriture
    POUR chaque ligne du fichier source (fgets)
      FAIRE
      SI la ligne ne contient pas le motif à éliminer (strstr)
      ALORS
        Écrire la ligne dans le fichier temporaire (fputs)
      FIN SI
    FIN POUR
    Fermer les fichiers (fclose)
    Remplacer le fichier à traiter par le fichier temporaire (rename)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    J'ai utilisé la commande unix sed avec la fonction system et ca tourne =)

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par vaderetro33 Voir le message
    J'ai utilisé la commande unix sed avec la fonction system et ca tourne =)
    Ben, c'est très sale, comme approche !

    Citation Envoyé par mabu Voir le message
    Il n'y a pas de moyen direct de faire ça en C, il faut passer par un fichier temporaire :
    Pas forcément. S'il s'agit de supprimer des lignes, on peut très bien utiliser un index en écriture et un index en lecture dans le même fichier, le premier en retard sur le second.

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

Discussions similaires

  1. Supprimer une ligne dans un fichier texte
    Par bsketeur dans le forum Langage
    Réponses: 26
    Dernier message: 28/06/2006, 10h36
  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