Arbeiten mit Dateien
-
Hallo !
Ich habe mal eine Frage zu Dateien. Ist es irgendwie möglich Daten aus einer Datei zu löschen ohne die Datei komplett neu zu schreiben ? Also wie zum Beispiel beim Ersetzen.
-
ja, das sollte kein Problem sein, musst halt ein bisserl basteln, ich denke da an eine Methode, die Daten vom Anfang, bis zu der Position an der der zu löschende Teil beginnt in eine neue Datei kopieren, den zu löschenden Teil überspringen(mit seek) und dann den Rest weiter in die neue Datei zu kopieren
-
Ich habe warscheinlich etwas kryptisch ausgedrückt. Aber ich wollte Daten löschen ohne die Datei irgendwie neu zu schreiben.
-
na ja, dass kommt doch aufs selbe hinaus, oder nicht? du überschreibst einfach die Quelldatei danach
-
Problem ist jetzt nur, wenn ich Daten aus der Mitte der Datei entferne und die nachfolgenden "hochschiebe" bleibt am Ende ein "leerer" Rest. Kann man dann die Dateogrösse neu definieren, so dass die letzten X Bytes einfach abgeschnitten werden ?
-
CFile::SetLength sollte das tun was du suchst
Edit: allerdings sollte das doch nicht nötig sein, wenn du die Daten in eine temporäre neue Datei schreibst