Seite 1 von 1

CatchFile(#Datei, *Adresse, Laenge) ?

Verfasst: 03.06.2013 14:51
von Thorsten1867
Nachdem es diesen Befehl leider nicht in PB gibt, suche ich nach einer Lösung, wie sich das realisieren ließe.

Ich möchte eine Datei aus einem ZIP-Archiv auslesen und danach direkt darauf mit ReadLong(#Datei), ReadString(#Date), ReadData(#Datei, *Speicherpuffer, Länge) usw. zugreifen ohne den Umweg über die Festplatte.
Ich suche also einen Weg, einer Datei, die bereits in den Speicher geladen ist, eine entsprechende Dateinummer (#Datei) zuweisen zu können, um auf diese mit den PB-Befehlen zuzugreifen.

Wer hat eine Idee wie man diese Problem angehen könnte?

Re: CatchFile(#Datei, *Adresse, Laenge) ?

Verfasst: 03.06.2013 15:17
von Lambda
PB bietet doch die Funktion?

Code: Alles auswählen

UncompressPackFile(#Pack, Dateiname$ [, GepackterDateiname$])

Re: CatchFile(#Datei, *Adresse, Laenge) ?

Verfasst: 03.06.2013 15:32
von STARGÅTE
Da musst du dich wohl mit den Peek-Befehlen durcharbeiten.

Du kannst dir ja auch schnell selbst Funktionen schreiben wie:
ReadMemoryLong(), ReadMemoryString() und dabei den Pointer automatisch weiter setzen.

Re: CatchFile(#Datei, *Adresse, Laenge) ?

Verfasst: 03.06.2013 16:18
von Thorsten1867
STARGÅTE hat geschrieben:Da musst du dich wohl mit den Peek-Befehlen durcharbeiten.

Du kannst dir ja auch schnell selbst Funktionen schreiben wie:
ReadMemoryLong(), ReadMemoryString() und dabei den Pointer automatisch weiter setzen.
Das wollte ich eigentlich vermeiden, wäre aber eine Notlösung.

Re: CatchFile(#Datei, *Adresse, Laenge) ?

Verfasst: 05.06.2013 21:20
von Thorium
Sowas gibt es nicht da die Datei ja schon im Speicher ist, wozu sie von einer Speicheradresse zu ner anderen kopieren?
Man nutzt für den konfortablen Zugriff Pointer und Strukturen, das ist sogar um einiges konfortabler und überlichtlicher als Dateizugriffe.

Re: CatchFile(#Datei, *Adresse, Laenge) ?

Verfasst: 05.06.2013 21:32
von Thorsten1867
Inzwischen habe ich das mit direkten Speicherzugriffen gelöst:

zipFC-Dateiformat (ZIP Datei-Container)
incl. Möglichkeit der AES-Verschlüsselung einzelner Dateien ( nun ohne CarchFile() )