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 C++ Discussion :

Comment supprimer une ligne d'un fichier


Sujet :

Langage C++

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 31
    Par défaut Comment supprimer une ligne d'un fichier
    Salut! j'aimerais savoir s'il existe une fonction qui permet d'effacer une ligne d'un fichier en c++ ou comment le faire voici ce que j'ai écrit mais çà ne marche pas.
    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
    void Efacer_Ligne(string MonFichier, int LigneASuppimer)
    {
        string Buffer = ""; //Variable contenant le texte à réécrire dans le fichier
        ifstream fichier(MonFichier.c_str(),ios :: in);// on ouvre le fichier en mode lecture
        if (fichier) //Si le fichier est trouvé
        {
            string ligne;
            int Ligne = 0;
            while ( getline( fichier, ligne ) ) //on parcours le fichier et on initialise ligne à la ligne actuelle
            {
                Ligne++;
                if(Ligne != LigneASuppimer) //Si la ligne atteinte est différente de la ligne à supprimer...
                    Buffer += ligne + "\n"; //On ajoute le contenu de la ligne dans le contenu à réécrire
            }
        }
        fichier.close(); //On ferme le fichier en lecture
     
        ofstream fichier( MonFichier.c_str,ios :: out | ios :: app ); //On ouvre ce même fichier en écriture
        fichier << Buffer; //On écris le texte dedans
        fichier.close(); //et on ferme le fichier
    }

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    En effet le seul moyen d'enlever une ligne est d'écrire un autre fichier (il y aurait une autre possibilité qui ne fonctionne que pour ôter la dernière ligne.)
    Mais ton code utilise 2 variables qui ont le même nom fichier. Et le fichier en écriture ne doit surtout pas utiliser le flag ios::app (qui ajoute aux données existantes) mais plutôt le flag ios::trunc (qui efface le fichier avant toute écriture).

Discussions similaires

  1. Comment supprimer une ligne d'un fichier excel ?
    Par dreadnight dans le forum VB.NET
    Réponses: 4
    Dernier message: 14/04/2010, 19h45
  2. Réponses: 2
    Dernier message: 17/07/2009, 18h24
  3. [JTreeTable] comment supprimer une ligne
    Par seiryujay dans le forum Composants
    Réponses: 10
    Dernier message: 03/08/2005, 09h12
  4. [C#] Comment supprimer une ligne dans DataGrid ?
    Par BAUDIER dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/07/2004, 16h03
  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