An Textdatei anhängen, statt überschreiben ?



  • Hallo,

    ich habe ein CStdioFile und schreibe dort mittels WriteString zeilenweise Text in eine Datei. Nun würde ich gerne die Option bieten daß man auch was anhängen kann, anstatt die Datei zu überschreiben.

    Leider habe ich bei CStdioFile nix passendes gefunden, und die SeekToEnd Methode von CFile klappt bei mir auch nicht (außerdem schreibt der dann die \0 mit ins File). 😞

    Geht das überhaupt mit CStdioFile und wenn nicht, muß ich bei CFile::SeekToEnd nacj jedem Write wieder neu den Pointer setzen (und größe einlesen) ?

    Thx
    Ray



  • Schau dir mal an wie man das mit Standard C++ macht, also of- if- und fstream.
    http://c-plusplus.net/forum/viewtopic.php?t=39469

    Devil



  • Hi,
    versuch mal zusätzlich
    CStdioFile::modeNoTruncate
    als Flag

    Grüße Rapha



  • Hi Rapha,

    ich habs jetzt hinbekommen 🙂 Mit dem Notrace und einer abfrage ob er denn nun appenden will oder nicht. Das Notrace hängt wohl IMMER was dran so mit mußte ich die FileLänge auf 0 setzen wenn er doch nicht appenden will. Klappt ganz gut...naja wenn ich früher gewußt hätte das die CFile Memebrs auch für CStdioFile gilt hätt ich es wohl auch so geschafft 🙂

    @Rapha: Hast Du meine eMail erhalten ?

    thx
    ray



  • Hallo,

    ich war der Meinung, zum dranhängen ist noch ein fDatei.SeekToEnd();
    notwendig. 😕 Beipiel:

    fDatei.Open(pfadname , CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate);

    fDatei.SeekToEnd();
    fDatei.WriteString("hallo\n");



  • Hi,

    ja genau , ist bei mir auch so. Ich öffne also immer mit ::doNotruncate und wenn Append dann noch zusätzlich ..SeektoEnd() ansonsten SetLength(0)..zumindest funktionierts hier 🙂

    ray


Anmelden zum Antworten