Einzelnen Beitrag anzeigen

mimi

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

Re: Virtuelles Dateisystem schreiben?

  Alt 22. Sep 2007, 18:54
Ist zwar lange her der letzte Beitrag aber sowas finde ich immer Interessant weil habe selber schon mind. drei mal versucht sowas zu schreiben, das Hinzufügen, Löschen, Updaten, einer Datei habe ich ja immer schnell geschaft.

Aber ich wollte ja auch noch das einzelne Blöcke komprimiert werden können - damlas mit bzip2 und sie sollten auch noch verschllüsselt werden können. Da habe ich dann immer aufgeben, weil das ganze zu komplex war/ist.

Ich bin immer auf ein Kern-Problem gestoßen: Das Speichern der Daten. Das lesen ist relativ einfach, aber wie soll ich eine große Daten Menge speichern ? z.b. eine 20 GB oder TB Datei ?
Immer alles neu zu erstellen würde ich sagen geht nicht, weil es einfach zu lange dauert.

Vor einiger Zeit ist mit einer Idee gekommen wie das ganze relativ einfach gehen würde.
Man müsste es so abspeichern wie eine Doppelt Verkette Liste Funktioniert:

Wenn die Datei leer ist wird als erstes eine Index-Tabelle Angelegt.
mit einer Festen Größe z..b. 20 Einträge.

Sind die voll steht im Letzten Eintrag drin wo es weiter gehen soll.

Ich lege jetzt eine Tabelle an und ordne der Tabelle Datensatzte zu.
Hier genau das gleiche: Eine Tabelle sollte Speicher im voraus resavieren z.b. für 20 Datenstätze.

Ich hoffe ihr versteht wo ich hinaus möchte. Beim Löschen wird einfach nur noch die vorhanden Daten mit verschiedenen Zahlen überschrieben und z.b. mit 0 und der Platzt wird freigeben.

Ich bin sicher das es auf dieser Art und weise auch richtige DB'S tuen und das sich dieser art und weise irgendwie auf ein Virtaules Dateisystem anwenden lässt.

Ich habe mir auch einige Gedanken gemacht wie das ganze als Klassen aussehen sollte.
und da habe ich meine Probleme.

Ich bekomme keine passende Klassen Struktur zusammen

Ich dachte eine Klasse für den Direkten Datei zu Grief.
und da fängt es schon an:
Dann eine Procedure für das Schreiben eines Feldes.
Also das Speicher im Vorraus bereit gehalten wird.

und ich bin mir noch nicht sicher ob ich mit Zeilen rechnen sollte oder mit echten Positions Angaben.

Bis jetzt habe ich es noch nicht wieder versucht. Weil mir noch nicht der Weg klar ist.
Ich hoffe ihr könnt es nach vollziehen wo die Probleme liegen: Es liegt nur an der Klassen-Struktur.
Wie es dann weiter geht weiß ich schon: TFileStream z.b.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat