Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Handler für typisierte Dateien (Unit)

  Alt 2. Feb 2007, 16:53
Meine Anmerkungen:
1.) man sollte die Unit von den uralten Pascalfunktionen AssignFile, Rewrite, read, write,... auf die Klasse TStream umstellen.
Damit ist man nicht nur auf Dateien beschränkt, sondern kann die Daten aus beliebigen Streams (z.B. TCP/IP) lesen und schreiben

2.) diese typisierten Dateien, die nur eine feste Recordstruktur mit fester Länge aufnehmen können ist Technik von Stand 1970.
Wenn man viele (10 - 10000) gleichartige Recorddaten speichern/laden möchte mag das vielleicht die Methode mit dem geringsten Overhead sein,
aber schon allein das Löschen eines einzigen Records verursacht grosses "Tamtam" im Speicher und auf der Platte.
Die Nachteile sind gravierend:
  • nicht selbstschreibend (im Gegensatz zu XML)
  • nicht portabel (Small/Big Endian Problematik)
  • starr und unflexibel
  • nicht hierarchisch
  • keinerlei Informationen über Version, letztes Änderung, Name der Anwendung die die Daten erzeugt hat
  • es gibt keine Viewer und keine Editoren (im Gegensatz zu XML oder INI-Dateien)
Wenn man jetzt versucht, einige dieser Nachteile abzumildern, dann landet man im Prinzip bei einer dBase-Datei.
Eine dBase-Datei hat einen Header, der grundlegende Dinge wie z.B. Anzahl Datensätze, Aufbau der Felder erklärt.
Zusätzlich hat jeder Record ein Löschflag.
Es gibt Editoren und Viewer für das dBase-Format.

Also wie könnte man sonst seine Applikationsdaten speichern?
da gäbe es
XML - viel Overhead, grosse Dateien, aber sehr flexibel
Hierarchical Data Format
Interchange File Format binäres, platzsparendes Datenformat
SDXF: Structured Data eXchange Format
Structured Storage von Microsoft (im Prinzip ein Dateisystem in einer einzigen Datei)
Andreas
  Mit Zitat antworten Zitat