Datensatz löschen
-
Hallo,
ich habe eine Satzorientierte Datei. In dieser Datei möchte ich den letzten Datensatz löschen. Wie geht das ? Wie setze ich "eof" ?
Danke
-
einfach so kürzen geht IMHO nicht, da musst du die datei neu schreiben und dabei den letzten eintrag auslassen... oder halt als invalid markieren und später überschreiben...
-
Also d. h. ich muss den Umweg über eine Temporäre File machen und in diese Datei alle Datensätze bis auf den letzten übertragen. Danach die Orginal löschen und diese dann durch die temp. Datei ersetzen.
Bei meiner Datei würde diese Möglichkeit tun, aber wie soll man das bei größerer Dateien realisieren. Diese Lösung schein mir nicht sehr elegant.
Kann man nicht einfacht das EOF Zeichen einen Datensatz weiter nach vorne setzen ?
fseek(.....,SEEK_END-sizeof(Datensatz)); //setzt Dateizeiger auf den vorLetzten Datensatz
und ist jetzt irgendwie möglich
z.B.
fprintf(Datei,EOF);PS.: Was meinst du mit IMHO
-
imho=in my humble opinion=meiner bescheidenen meinung nach