Seite 1 von 1

Gepackte txt file entpacken?

Verfasst: 18.11.2006 19:45
von PureBasic4.0
Hi, Leute

Habe ein .pak archiv mit pb erstellt. ich will das jetzt wieder entpacken. habe schon folgenden code ausprobiert (funktioniert nicht):

Code: Alles auswählen

CreatePack("test.pak")
AddPackFile("test.txt")
ClosePack()
OpenPack("test.pak")
CreateFile(1,"test2.txt")
WriteData(1,NextPackFile(),PackFileSize()
CloseFile(1)
Was soll ich noch machen? Die Daten werden ja per WriteData in die Datei hineingefügt. Die datei test2.txt bleibt aber leer.
kann mir mal jemand helfen?

Danke,PureBasic4.0

Verfasst: 18.11.2006 19:49
von edel
versuch esmal so

Code: Alles auswählen

a = NextPackFile()
WriteData(1,a,PackFileSize())

Verfasst: 18.11.2006 21:38
von AND51
Siehe Thread von mir, "PB dröselt Parameter von hinten auf?".

Exakt dasselbe Problem hatte ich auch; es liegt daran, dass PackFileSize() *VOR* NextPaackFile() aufgerufen wird. Beim entpacken der ersten Datei aus einem Archiv will mir die Funktin also die Größe einer Datei zurückgeben, die gar nicht ausgepackt wurde... /:->

Durch Verwendung von edels Schreibweise wird bewirkt, dass NextPackFile() die Datei ordnungsgemäß entpackt und den Rückgabewert zur späteren Verwendung in a speichert. Da erst in der nächsten Zeile PackFileSize() aufgerufne wird, gibt dieser Befehl nun den korrekten Wert zurück, weil NextPackFile() ja auf jeden Fall vorher schon ausgeführt wurde.



Ich finde, man sollte es generell so machen, dass wenn man die Schreibweise von PureBasic4.0 nimmt, alle in einer zeile vorkommenden Befehle von links nach rechts ausgeführt werden. Hoffe, ihr wisst, was ich meine.

Verfasst: 19.11.2006 17:22
von PureBasic4.0
ok. danke hat funktioniert.