Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: Dateiinhalt teilweise löschen
23. Apr 2012, 11:05
Du hast irgendwo eine Liste mit den enthaltenen Dateien (eventuell auch Mehrere),
dort steht drinne wo die Datei anfängt und wie lang sie ist.
- beim Löschen wird einfach der Eintrag gelöscht
- beim Verkleinern einer Datei werden nur die Daten dieser Datei und ihre gespeicherte Länge geändert
- beim Vergrößern schaust du, ob hinter der Datei noch genug Platz ist (eventuell auch vor der Datei)
- - wenn ja, dann wird die Datei dort reingeschrieben und die Positions- und Größeninfo angepaßt
- - wenn nein, dann wird eine neue Stelle gesucht, also ein ausreichend großer freier Plattz irgendwo mittendrin oder die Datei wird hinten angehängt
Dadurch bleiben zwar Leerräume, welche man aber über eine Optimierungsfunktion/Defragmentierung bezeitigen kann.
Enteder manuell aufgerufen oder direkt beim Schließen des Archivs.
PS: So in etwa arbeiten auch Datenbanken und Dateisystemtreiber.
Du könntest natürlich auch eine Datenbank verwenden, so ala Firebird Embedded.
$2B or not $2B
|