hi,
Wenn man nun die gespeicherten Strings in der Datei in Blöcken organisiert, kann man so auch quasi-wahlfrei auf die Strukturen zugreifen und sogar einzelne davon separat austauschen. Man darf eben nur nicht das Blockraster zerstören.
Klaro. Hierin liegt jedoch auch die Gefahr der "Platzverschwendung", weil Blöcke sozusagen reserviert sind (*).
Wenn man nun als erste Struktur eine mit den Metadatan abspeichert, hat man schon eine etwas intelligentere Speicherform geschaffen, als eine reine serielle Datei.
Lineare Adressierung und Serialisierung sind ja auch verschiedene Dinge. Letzteres ist mein Ding. In meinem Artikel geht es auch nur um Serialize, nicht jedoch um die Erörterung, was die Unterschiede zwischen Adressierung und Serialisierung sind und was sich für Vor- Nachteile daraus ergeben.
(*) Mit den heutigen Massenspeichern sicher nicht mehr so das Thema. Sofern serialisierte Daten in Feldern konstanter Länge abgelegt sind, werden auch bytes verschenkt. Dafür ist der Zugriff performanter als bei einer Datenhaltung in Feldern variabler Länge, das liegt am Algorithmus: bei Feldern mit variabler Länge muss diese erst ermittelt werden, bevor ein Record geschrieben wird. Beim Lesen genau andersherum: Bevor ein Feld gelesen werden kann, muss erst die Länge ermittelt werden, die Länge ist natürlich auch in der Datei gespeichert. Bei Feldern konstanter Länge gibt es keine gespeicherte Längenangabe, die ist dann fest vorgegeben.
Eigentlich hätte ich damit schon alles gesagt zum Thema, falls Du noch Fragen hast, Tom, ruf mich an oder schick mir ne mail.
Es ist schon etwas seltsam, wie hier so reagiert wird, das ist eines Forum, wo sich Entwickler treffen, nicht würdig. Vielleicht gehts den heutigen Entwicklern auch einfach nur zu gut, ein Griff in irgendwelche Libs, Frameworks oder wie das alles heißen möge und fertig. Was denen jedoch abgeht, ist die Freude am Selbstgemachten, dafür schlagen die dann hier frustriert auf, wenn irgendwas nicht geht.
Weiterhin schöne Weihnacht,
Hotti