Hallo,
s. Thema. Wo kann ich da mal was nachlesen?
wo immer du willst ... ;-)
Ich hab mir folgendes ausgeheckt für die Datei:
Header
4 byte: Anzahl der Einträge (integer)
4 byte: Position key1
4 byte: Länge key1
4 byte: Position value1
4 byte: Länge value2
usw. Bis hier alles Integer long (32 Bit, 4 byte)Data
variabel, binary
Dieser Header enthält Redundanzen. Um Position und Länge eines key- oder value-Eintrags zu bekommen, musst du zwei DWORDs lesen. Dann ist es aber unnötig, die Länge mitzuspeichern, denn die ergibt sich aus der Position des gesuchten und des darauffolgenden Eintrags. Wenn die Anzahl der Einträge nicht ins Uferlose wächst, kann man sogar den gesamten Header als DWORD-Array im Arbeitsspeicher halten, was der Performance zugute kommen könnte.
Insgesamt finde ich den Ansatz recht gut. Er hat zwar einen Nachteil, nämlich dass er nur "flache" Datenstrukturen abbilden kann, keine verzweigten. Wenn man das allerdings möchte, wird's ziemlich aufwendig.
Wer mir über son Zeug maln bissl mehr erzählen kann, sollte jetzt reden (oder für immer schweigen) ;-)
Was willste denn hören?
Fröhliche Eiertage,
Martin
Kleine Geschenke erhalten die Freundschaft.
Große verderben sie aber meist auch nicht.