Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Virtuelles Dateisystem (https://www.delphipraxis.net/105874-virtuelles-dateisystem.html)

Codewalker 1. Jan 2008 13:54


Virtuelles Dateisystem
 
Ich bin auf der Suche nach einer Möglichkeit (Klassen), mehrere Dateien in einer Datei zu speichern und auf einzelne Dateien zur Laufzeit zugreifen zu können. Zusätzlich sollte man noch die Dateien mit Pfaden ablegen können, um eine Art Baumstruktur zu machen. Ganz wichtig ist mir, dass ich zum laden einer Datei des Archivs nicht das ganze Archiv im Speicher hängen habe, sondern wirklich nur den Teil laden, den ich brauche.

Bei Torry habe ich dazu das SingleFileDataStorage gefunden, aber das erzeugt immer wieder ominöse Fehler beim Einlesen vorhandener Dateien (es lässt die Borland Debugger-DLL abschmieren). Kennt jemand brauchbare Alternativen oder Lösungen dazu?

MrKnogge 1. Jan 2008 14:18

Re: Virtuelles Dateisystem
 
Du könntest es "entpackt" in den temporären Ordner speichern.

peschai 2. Jan 2008 06:23

Re: Virtuelles Dateisystem
 
Hallo,

Wie wäre es mit ZIP-Komponenenten ?

Bernhard Geyer 2. Jan 2008 06:25

Re: Virtuelles Dateisystem
 
Solid File System

mkinzler 2. Jan 2008 06:44

Re: Virtuelles Dateisystem
 
Weitere:
-sfs
-Virtual Stream

quantum 2. Jan 2008 07:09

Re: Virtuelles Dateisystem
 
GpStructuredStorage
http://gp.17slon.com/gp/

Codewalker 2. Jan 2008 17:08

Re: Virtuelles Dateisystem
 
Danke für die vielen Antworten. GpStructuredStorage gefällt mir bis jetzt am besten (nicht zuletzt durch das Total Commander Plugin). Klappt auch alles, nur schaffe ich es nicht, Dateien in das Archiv zu packen. Weiß jemand Rat? (Weil sonst macht das ganze wenig Sinn und man sollte in diesem Zusammenhang davon abraten)

mimi 3. Jan 2008 11:20

Re: Virtuelles Dateisystem
 
Es kommt auf dein Verwendung zweck an. Was hast du damit vor ? Wie groß soll die Datei werden ?

Soll nur lesend drauf zugegrieffen werden ist das relativ leicht mit TFileStream. Aber beim Schreiben wird es schwer.
ist die Dateigröße wichtig ?

Ich versuche gerade selbst so ein Format zu schreiben:
Es gibt Blöcke mit Fester Größe. Jeder Angelegte Tabelle besteht aus z.b. 20 Einträgen die sind von der Länge her fest. Die Länge der Einzelnen Datenstätze kannst du beim erstellen mit angeben. Daraus berechne ich die Zeilen Länge. Im Prinzip währen auch Dynamische Datentypen möglich aber das währe alles aufwendiger.

Meine Idee hätte den Vorteil das die Datei nicht komplett eingelesen werden müsste sondern nur das was du brauchst. Schreiben geht ganz einfach wenn es sich um einfache Datentypen wie Strings oder Integers handelt.

bei Dateien ist das schon schwirger aber nicht unmöglich.

Im Moment hänge ich noch bei den Grundlagen fest. Das ändern von Tabellen Einträge.
Ein Baum Format währe damit auch denkbar. Jede Tabelle zeigt einfach auf eine Andere Tabelle. Damit könnten die Daten so abgerufen werden wie im Dateisystem. Es soll einige Standard Variablen geben die von der Klasse selber gesetzt und geändert werden wie z.b. wie oft wurde dieser Eintrag abgerufen ? Wann wurde er erstellt ? und solche fragen.

Codewalker 3. Jan 2008 11:51

Re: Virtuelles Dateisystem
 
Nach einigen Startschwierigkeiten komme ich jetzt ganz gut klar und kann mal folgendes über GpStructuredStorage sagen: Anfangs war ich etwas irritiert, weil es alle auf Interfaces aufbaut. Im Nachhinein macht alles Sinn und ist super einfach zu benutzen. Es verhält sich letztlich wie eine Art Datenträger. Der Zugriff läuft vollständig über Streams, so dass man bestehende Lade-/Speicherroutinen nicht anpassen muss. Die Daten können in einer Baumstruktur abgelegt werden und sind in der Größe nur auf 2 GB beschränkt (reicht mir :mrgreen: ).

Es fehlt nur an drei Dingen:
  • Eine gute Dokumentation, man muss (wie bei so vielem) sich einiges Zusammensuchen. Liegt auch z.T. am schlechten Demo
  • Einen guten Editor, um schnell Dateien zusammenzubauen (musste ich mir selber schreiben)
  • Eine Funktion, um alle enthaltenen Verzeichnisse in einem Baum darstellen zu können. (Musste ich mir auch über eine rekursive Funktion mit ein paar Tricks zusammenbauen)

Unterm Strich kann ich nur sagen: Empfehlenswert. Ist genau das, was ich gesucht habe und wird auch häufig eingesetzt (z.B. von den GExperts für die CodeLib)

@Mimi: Quelltext ist mit dabei, vielleicht kannst du dir da ja ein wenig Inspiration holen. Scheint da zumindest alles gut gelöst zu sein

Ghostwalker 3. Jan 2008 12:12

Re: Virtuelles Dateisystem
 
@Codewalker

Wie wärs mit einem kleinen Tutorial ? :) Ich denke das das Thema viele interessieren würde :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz