fstream und seekp
-
Hi
ich möchte gerne den Inhalt einer Datei überschreiben.
Dazu habe ich folgenden Code geschrieben:fstream datei; fstream out; AnsiString tmp = ""; bool start = true; char wert; datei.open("d:\\cpp\\Datei1.exe",ios::in | ios::binary); out.open("d:\\cpp\\Datei2.exe",ios::out | ios::binary); out.seekp(570048); /*if(datei.is_open()) { while(!datei.eof()) { wert = datei.get(); if(!datei.eof()) { out << wert; } } }*/ out << "Test"; datei.close(); out.close();danach ist aber bei Datei2 (der in die ich schreibe) alles vor Byte 570048 mit '\0' beschrieben. Und der alte Inhalt ist weg. Was mache ich da falsch?
THX
Dagsta
-
Hallo,
Das Flag ios::out kürzt die Datei automatisch auf die Länge von 0 Byte (d.h. löscht deren Inhalt), sofern du es nicht mit ios::in, ios::ate oder ios::app kombinierst.
Gruß, Caipi.