AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Virtuelles Dateisystem

Ein Thema von Codewalker · begonnen am 1. Jan 2008 · letzter Beitrag vom 5. Feb 2013
Antwort Antwort
Seite 2 von 3     12 3      
mimi

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

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 13:27
@Codewalker
Danke, ich werde es mir gleich mal anschauen bzw. danach suchen.
Wird die Datei denn bei jeder Änderung komplett neu erstellt ?

Evlt. gibt es sowas ja auch für Lazarus.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#12

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 13:44
Ich übersetze gerade schon die Andorra Tutorials - aber später lasse ich mit mir reden.
Aber für alle Interessierten hänge ich mal das Beispiel an. Es besteht aus den 3 GP-Quelldateien und meinem kleinen Demo. Ist bei weitem nicht perfekt, daher kurze Anleitung:

1. Als allerersten im Menü den Eintrag für ein neues Archiv wählen (oder ein vorhandenes Öffnen).
2. Danach ist freies Arbeiten möglich. Das Extrahieren von Dateien ist aber derzeit noch nicht möglich.

Im Quellcode (ist jetzt aber nicht sonderlich aufgeräumt und schön) solltet ihr alles finden, was man braucht. Wer noch weitere Ideen oder Verbesserungen vornimmt, kann sie ja gerne hier posten. Vielleicht kriegen wir das ja zu einem verwendbaren Päckchen zusammen.
Wer seine Dateien wieder braucht kann auch ein Plugin für den Total Commander installieren. Das kann aber nur extrahieren und nicht reinpacken (also eher eine Notlösung). Link muss ich wieder raussuchen, kann ich gerade nicht mit dienen.

Ich will das ganze mit Andorra nutzen, werde also noch das ein oder andere daran basteln und auch eine Hilfsunit für Andorra schreiben. Aber gut Ding will Weile haben...

@mimi: Das mit dem neu erstellt habe ich mir noch nicht angesehen, wird aber rauszukriegen sein.
Angehängte Dateien
Dateityp: zip demo_286.zip (45,8 KB, 35x aufgerufen)
Dateityp: exe container_158.exe (1,01 MB, 38x aufgerufen)
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#13

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 17:20
Zu der Frage, ob immer alles eingeleen wird: Ich habe ein wenig getestet.
Die Funktion ReadFile liefert einen Stream zurück, der genau den Teil des Archivs liest, der die gewünschte Datei enthält. Es wird also nicht immer alles eingelesen.
Das ganze macht es sehr bedienbar und speicherschonend, hat aber zwei kleine Nachteile:

1. Man kann das Archiv nicht komprimieren (dann müsste der Stream angepasst werden und entsprechend weniger lesen - ist also aufwändig)
2. Man kann Dateien nicht nachträglich vergrößern. Wenn an Dateien etwas angehangen werden soll, dann muss die bestehende Datei im Archiv entfernt werden und durch die neue, größere Datei ersetzt werden. Dadurch entsteht in der Datei ein "Loch" ähnlich wie man es von Datenbanken kennt (die ja, vereinfacht gesagt, nicht anders arbeiten). Durch den Aufruf der Methode Compact wird das gesamte Archiv neu geschrieben und die Löcher sind weg. Das erfordert je nach Größe des Archivs aber ein klein wenig Zeit.

Insgesamt sind das, imho geringfügige Einschränkungen die mich nicht stören. Wenn man die Streams geschickt einsetzt, kann man Dateien in einen Editor laden und die geänderten danach wieder zurückschreiben. Man muss dann nur regelmäßig Compact aufrufen (am besten beim Beenden).

Wer nutzt das denn noch oder will es nutzen und wofür? Würde mich mal interessieren...
Thomas
  Mit Zitat antworten Zitat
mimi

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

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 17:28
Klinkt nicht schlecht. Hört sich nach meiner Idee an die ich gehabt habe. Das mit dem Löschen ist klar.

Das Mit den Dateien einfügen das ist noch doof das da die Größe nicht geändert werden kann(oder sehe ich das falsch ?)

Ich würde sowas bei meinem Spielen einsetzten. z.b. für ein einfachers Level Format.

Im Moment ist das einfach nur Ascci und kann enweder in einem einfachen Archive gespeichert werden oder als einzelnen Dateien. Aber die Umsetzung gefällt mir nicht.

und ich könnte so ein Virtualles Dateisystem für mein "Notezien Verwalter" verwenden. Dort nutze ich im Moment die Speicher und Lade Funktion von der VST Komponente.

Ach ja: Die Datei wird nicht neu erstellt beim verändern oder ?

Währe toll wenn das auch unter Lazarus läuft.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#15

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 17:33
Nein, die Datei wird nicht neu erstellt. Er hängt es einfach hinten dran und lässt in der Mitte (wo die alte Datei war) eine Lücke. Das Archiv belegt dann mehr Platz als die darin enthaltenen Dateien. Dann muss man Compact aufrufen und er schreibt das ganz ohne Lücken neu.

Die Größe einer einmal enthaltenen Datei kannst du nicht ändern. Dazu muss sie neu eingefügt werden (s.o.)
Und was Lazarus angeht: Ich nehme mal an, dass Lazarus Interfaces versteht - dann habe ich auf einen schnellen Blick nichts gesehen, was dagegegen sprechen sollte
Thomas
  Mit Zitat antworten Zitat
mimi

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

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 17:49
Gut Danke ! Werde ich gleich mal ausprobieren.... das mit der Lücke ist doof, ich hatte Gehofft das sie wieder gefüllt wird automatisch mit neuen Daten.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#17

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 17:56
Naja, dann müsste man ja eine Datei haben, die exakt auf das Byte genau in die Lücke passt. Das wird wohl nicht gehen. Aber durch den einmaligen Aufruf von Compact verschwinden ja alle Lücken - ist also leicht zu umgehen
Thomas
  Mit Zitat antworten Zitat
mimi

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

Re: Virtuelles Dateisystem

  Alt 3. Jan 2008, 18:06
nach meiner Idee schon, ist es aber nicht so einfach:
Ich packe eine Datei in das Archiv lösche sie und packe eine neue wieder rein.
jetzt wird der Platzt der Alten Datei übernommen und der Rest am ende eingefügt.
Das lesen wird natürlich aufwendiger das ist klar und es ensteht ein durcheinander in der Datei aber es geht.

ich habe sie mir gerade gedownlodet. Ich werde sie mir mal anschauen.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#19

Re: Virtuelles Dateisystem

  Alt 5. Jan 2008, 17:50
Ich würde gern wissen wofür man das braucht.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
mimi

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

Re: Virtuelles Dateisystem

  Alt 5. Jan 2008, 18:00
Ist doch ganz einfach, wenn man Daten in einem Spiel speichern möchte und nicht 1000 einzelne Dateien haben möchte. Im Prinzip könnte man auch einfach ZIP nehmen, aber so ist das "schöner" finde ich.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
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