Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#9

AW: Dateiinhalt teilweise löschen

  Alt 23. Apr 2012, 10: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat