Umgang mit Dateien



  • Hallo,

    ich wollte eine TextDatei öffnen, den Dateizeiger auf eine bestimmte
    Stelle vom Dateiende her gerechnet setzen und dann abspeichern.
    die neue datei sollte dann um dieses Stück abgeschnitten sein.

    doch das funktioniert nicht. woran liegt's ?

    fstream myFile("ABC.TXT",ios::out|ios::app);
    //datei öffnen

    myFile.seekp(-50,ios::end);
    //dateizeiger soll 50 zeichen vor eof gesetzt werden

    myFile.close();
    //jetzt denke ich mir ist die datei abgeschnitten

    besten dank für eventuelle antwort,

    wilfried.pz



  • ??

    du hast doch nur den zeiger umgesetzt!
    setz eben den lesezeiger um, kopiere ab da alles in eine neue datei!



  • fseek() setzt nur den Schreibzeiger neu, d.h. ab jetzt werden alle Ausgaben ab der angegebenen Position eingetragen (und afaik ignoriert eine mit ios::app geöffnete Datei diese Anforderung sogar). Die Datei kürzen kannst du nur, indem du alles außer dem letzten Stück in eine neue Datei kopierst.


Anmelden zum Antworten