Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: allgemein: Parser vorgehensweise.

  Alt 2. Feb 2010, 17:17
Zitat:
@mimi: Wie lese ich einen Baum TEILWEISE ein? Woher weiß ich denn vorher, ob ein Tag gerade an Stelle X geöffnet ist??? Question
Z.B. wenn du nur eine bestimmte Anzahl von Tags einliest. Z.B. nur 10 Root-Tags. je nach dem wie viele es gibt.

Zu deinem Problem: Ich habe schon seit längeren eine Idee, wie ich eine eigene DB erstellen könnte. Das passt ganz gut hierein denke ich:
Es gibt Bereiche die eine Feste Größe haben. Je nach Datentyp. Nur bei Datentypen, die eine Dynamische Größe haben, wird es Problematisch. Es gibt eine Tabelle gleich am Anfang. Beispielweise ist die 500 Byte groß. Davor wird gespeichert wo es in der Tabelle weiter geht und nach der Tabelle wird gespeichert, wo die Tabelle weiter geführt wird.

Datentypen, die jetzt eine Dynamische Größe haben, könnten jetzt, am Ende Eingefügt werden. Sagen wir dieser Block ist 1000 Byte groß. Die Brauchen dann zwar mehr Speicherplatzt, den sie vielleicht nie brauche, aber dafür kannst du diese Datenstätze schnell ändern.

Gelöscht wird z.b. gar nicht, sondern es wird nur der Platz frei geben. Die Idee Basiert darauf, Blöcke zu bilden, die eine bestimmte Größe haben.

Vielleicht klappt das auch so im RAM. Ist ein Block zuende, wird der nächste Angefangen. Da die Blöcke Kompatibel zu einander sein müssen / sollten, muss immer die Position wo der Nächste Block ist, abgespeichert werden am ende des Blocks.

Umgesetzt habe ich diese Idee noch nicht, da es noch einige ungeklärte Fragen gibt. Z.B. die DB wächst, also wachsen die Positions Angaben mit. Wenn ich jetzt aber vor dem Block nur 100 Byte belege, und ich aber 200 brauche, wird es zu Problem kommen. Ich hoffe ihr wisst was ich meine.

Ich glaube auch, so oder so ähnlich machen das auch die meisten DB'S die es inzwischen gibt.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat