Packer Problem
Verfasst: 26.08.2005 01:08
Ich wollte einen Ordner zum hochladen packen, den das Programm bei der ersten ausführung wieder entpackt. Leider habe ich ein Problem mit dem entpacken...
Die Dateinamen werden nicht mehr richtig ausgelesen! Was mache ich falsch?
Die Dateinamen werden nicht mehr richtig ausgelesen! Was mache ich falsch?
Code: Alles auswählen
Procedure pack()
CreatePack("gfx.pck")
ExamineDirectory(1,"gfx_save","*.bmp")
Repeat
typ=NextDirectoryEntry()
If typ=1
*id=AllocateMemory(MemoryStringLength(*DirectoryEntryName()))
PokeS(*id,DirectoryEntryName())
If AddPackMemory(*id,MemoryStringLength(*DirectoryEntryName()),9)
Debug PeekS(*id)
EndIf
FreeMemory(*id)
AddPackFile("gfx_save\"+DirectoryEntryName(),9)
EndIf
Until typ=0
ClosePack()
EndProcedure
Procedure unpack()
CreateDirectory("gfx")
OpenPack("gfx.pck")
X=0
Repeat
Nextpf=NextPackFile()
*id=AllocateMemory(Nextpf)
Debug *id
;If *id
*unpack=AllocateMemory(Nextpf+PackFileSize())
len=UnpackMemory(*id,*unpack)
file$=PeekS(*unpack,len)
Debug file$
If file$
FreeMemory(*id)
*id=AllocateMemory(NextPackFile())
;file$=Str(X)+".bmp"
CreateFile(1,"gfx\"+file$)
WriteData(*id,PackFileSize())
CloseFile(1)
FreeMemory(*id)
FreeMemory(*unpack)
Else
Break
EndIf
Until PackFileSize()=0 Or error=1
ClosePack()
EndProcedure
unpack();/pack()