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

MFC Discussion :

comment insérer une ligne avec CFile::Write


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 29
    Points
    29
    Par défaut comment insérer une ligne avec CFile::Write
    J'utilise 2 fonctions suivantes: CreerFichier, EcrireFichier

    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
    //fileName est le nom du fichier
    //time est un COleDateTime
    void CreerFichier()
    {
    <div style="margin-left:40px">CFileException e;
    CFile f;
    if( f.Open( fileName, CFile::modeCreate | CFile::modeWrite, &e ) )
    {</div><div style="margin-left:40px"><div style="margin-left:40px">char buffer[100];	
    sprintf(buffer,"date=%d%d%d\r\n",time.GetDay(),time.GetMonth(),time.GetYear());
    f.Write(buffer, strlen(buffer));
    f.Close();</div></div><div style="margin-left:40px">}</div>}
    void EcrireFichier()
    {
    <div style="margin-left:40px">CFileException e;
    CFile f;
    if( f.Open( fileName, CFile::modeWrite, &e ) )
    {</div><div style="margin-left:40px"><div style="margin-left:40px">char buffer[100];
    sprintf(buffer,"heure=%d%d%d\r\n",time.GetHour(),time.GetMinute(),time.GetSecond());
    f.Write(buffer, strlen(buffer));
    f.Close();</div></div><div style="margin-left:40px">}</div>}
    J'exécute CreerFichier puis plusieurs fois EcrireFichier, mais chaque fois je me retrouve avec une seule ligne (la dernière écrite), cela veut dire que CFile::Write écrase le contenu du fichier

    Que doit je faire pour insérer une ligne ???

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Bon, problème résolue.
    Il faut ajouter f.SeekToEnd(); avant de reécrire

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    si c'est pour manipuler des fichiers textes, tu aurais interet à passer à CStdioFile ...

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

Discussions similaires

  1. [JtextPane] Comment recuperer une ligne avec jtextpane
    Par Bourak dans le forum Composants
    Réponses: 3
    Dernier message: 12/03/2009, 16h01
  2. Comment insérer une ligne dans vba
    Par chou-estelle dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/12/2008, 15h04
  3. Réponses: 3
    Dernier message: 27/08/2007, 10h28
  4. Insérer une ligne avec sed
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 28/06/2007, 14h08
  5. comment sauter une ligne avec Alert()
    Par sagitarium dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/05/2006, 17h35

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