Hallo
So auch ich hab jetzt wieder mal eine Frage.
Also ich arbeite gerade an einem kleinen Packer Programm. Das Packen und hinzufügen von dateien Funktioniert schon. Doch das entpacken macht mir jetzt Kopfzerbrechen.
Weil ich nur Zahlen statt der Datei zurückbekomme? Wie soll ich die Verpackten Dateien wieder Entpacken? Hat wer eine Lösung?
Packer-Befehl Frage
Hallo
Also ich hab mir jetzt nochmal die Hilfe richtig durchgelesen und bin auf folgendes Ergebniss gestossen.
NextPackFile() gibt nicht die Datei sondern die Speicheradresse zurück.
Original von der PB Hilfe:
Liest und entpackt die nächste gefundene Datei in der aktuellen Pack-Datei, die zuvor mittels OpenPack() geöffnet wurde. Die zurückgegebene 'Speicheradresse' wird geteilt ('shared') und sollte nie vom Programmierer freigegeben werden. Um die Größe des Speichers (d.h. die Größe der entpackten Datei) zu ermitteln, benutzen Sie PackFileSize().
So nun weisst ich jetzt das diese Zahl eine Speicheradresse ist aber welche? von der Datei oder die Speicheradresse die das Programm benutzt wo es die Datei hinterlegt?
Hab leider keinen Plan davon
Also ich hab mir jetzt nochmal die Hilfe richtig durchgelesen und bin auf folgendes Ergebniss gestossen.
NextPackFile() gibt nicht die Datei sondern die Speicheradresse zurück.
Original von der PB Hilfe:
Liest und entpackt die nächste gefundene Datei in der aktuellen Pack-Datei, die zuvor mittels OpenPack() geöffnet wurde. Die zurückgegebene 'Speicheradresse' wird geteilt ('shared') und sollte nie vom Programmierer freigegeben werden. Um die Größe des Speichers (d.h. die Größe der entpackten Datei) zu ermitteln, benutzen Sie PackFileSize().
So nun weisst ich jetzt das diese Zahl eine Speicheradresse ist aber welche? von der Datei oder die Speicheradresse die das Programm benutzt wo es die Datei hinterlegt?
Hab leider keinen Plan davon
- Justy
- Beiträge: 131
- Registriert: 10.09.2004 13:31
- Wohnort: Feldbach / Steiermark / Österreich
- Kontaktdaten:
In der Hilfe zu OpenPack ist ein sehr gutes Beispiel das mir das AHA-Erlebnis gebracht hat:
NextPackFile() gibt einfach die Adresse zurück, an der sich die Datei im RAM befindet.
Für Dateien die nicht geCATCHed werden können (Anregung:CatchFile(#FileID,*Adresse,Laenge) ) sollte das so funktionieren:
Achtung!
Der Code wurde nicht getestet!
mfg. Justy
Code: Alles auswählen
; Laden der gepackten Dateien in den Speicher...
OpenPack("mycompressedfiles.pak")
CatchSprite(0,NextPackFile()) ; InitSprite muss vorher in Ihrem Programm aufgerufen werden...
CatchSprite(1,NextPackFile()) ; ...die erste Datei wird als Sprite 0 geladen, die zweite als Sprite 1
CatchSound(0,NextPackFile()) ; InitSound muss vorher in Ihrem Programm aufgerufen werden...
CatchSound(1,NextPackFile()) ; ...die erste Datei wird als Sound 0 geladen, die zweite als Sound 1
ClosePack()
Für Dateien die nicht geCATCHed werden können (Anregung:CatchFile(#FileID,*Adresse,Laenge) ) sollte das so funktionieren:
Code: Alles auswählen
CreateFile(0,"test.txt")
OpenPack("mycompressedfiles.pak")
For i = NextPackFile() to PackFileSize()
WriteByte(PeekB(i))
Next
CloseFile(0)
Der Code wurde nicht getestet!
mfg. Justy
Am Anfang erschuf der Mensch Gott.
Friedrich Nietzsche
Friedrich Nietzsche