CatchFile(#Datei, *Adresse, Laenge) ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

CatchFile(#Datei, *Adresse, Laenge) ?

Beitrag 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?
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

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

Beitrag von Lambda »

PB bietet doch die Funktion?

Code: Alles auswählen

UncompressPackFile(#Pack, Dateiname$ [, GepackterDateiname$])
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

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

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag 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.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

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

Beitrag 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.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag 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() )
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten