Datei durch setzen von EOF verkleinern.
-
Hi Folks,
Ich habe ein Problem mit einer Datei. Ich möchte in einer Funktion den letzten Satz dieser Datei löschen. Wenn ich ihn mit mit leerzeichen überschreibe ist die Datei ja noch so lange wie vorher.
kann ich da irgendwie ein Signal oder zeichen reinschmuggeln das EOF setzt oder repräsentiert?
Ich möchte verhindern alle Sätze vorher in eine andere Datei zu kopieren.
Hat jemand ne IDee oder ne Lösung?
Danke Ranger
-
Wie groß ist denn deine Datei bzw. wie groß kann sie werden?
Normalerweise geht man so vor, dass man alle Datensätze einer Datendatei einliest am Anfang, die Datensätze dann im Programmablauf verändert (hinzufügt, geändert, gelöscht, ...) werden und am Ende dann in die Datei geschrieben werden. (Das ist die Variante für kleine Dateien.)
Du könntest dir aber auch zusätzlich ein Kennzeichen pro Satz speichern, mit dem du den Datensatz als glöscht markieren kannst.
-
Glasgow_Ranger schrieb:
kann ich da irgendwie ein Signal oder zeichen reinschmuggeln das EOF setzt oder repräsentiert?
das geht nicht, EOF ist kein Zeichen das in der Datei steht, das ist nur ein Signal von den Read-Funktionen.
Ich möchte verhindern alle Sätze vorher in eine andere Datei zu kopieren.
da wirst du nicht drumrumkommen.
-
DrGreenthumb schrieb:
Ich möchte verhindern alle Sätze vorher in eine andere Datei zu kopieren.
da wirst du nicht drumrumkommen.
Warum nicht?
-
na wenn er den datensatz löschen will? es lässt sich nunmal nicht einfach aus dateien löschen...
Ok, war jetzt so evtl. etwas verwirrend.. natürlich muss die Datei nicht direkt kopiert werden, aber eben neu geschrieben.
-
DrGreenthumb schrieb:
Ok, war jetzt so evtl. etwas verwirrend.. natürlich muss die Datei nicht direkt kopiert werden, aber eben neu geschrieben.
Da stimm ich dir voll und ganz zu :).