Wenn man jetzt ganz normal ein paar Dateien verpackt, wie krieg ichs dann hin, diese Dateien ganz normal an einen auswählbaren Speicherort zu entpacken? Ich kriegs einfach nich raus

Schon mal Danke für Antworten
Code: Alles auswählen
; Packen
If CreatePack("c:\DeinPack.pak")
AddPackFile("C:\DeineDatei.txt")
ClosePack()
Else
Debug "!"
EndIf
; Entpacken
If OpenPack("c:\DeinPack.pak")
SpeicherAdresse = NextPackFile()
If SpeicherAdresse
Groesse = PackFileSize()
FF = CreateFile(#PB_Any, "C:\DeineDatei2.txt")
If FF
WriteData(FF ,SpeicherAdresse, Groesse)
CloseFile(FF)
Else
Debug "!"
EndIf
Else
Debug "!"
EndIf
ClosePack()
Else
Debug "!"
EndIf
Hallo,Maddin hat geschrieben:Ich habe eine Frage:
Wenn man jetzt ganz normal ein paar Dateien verpackt, wie krieg ichs dann hin, diese Dateien ganz normal an einen auswählbaren Speicherort zu entpacken? Ich kriegs einfach nich raus
Schon mal Danke für Antworten
Code: Alles auswählen
CreatePack("C:\test.pak")
AddPackFile("C:\test.txt",9)
ClosePack()
OpenPack("C:\test.pak")
*Speicheradresse=NextPackFile()
CreateFile(1,"C:\test_wieder_entpackt.txt")
WriteData(1,*Speicheradresse,PackFileSize())
CloseFile(1)
ClosePack()
Gar nicht, jedenfalls nicht mit der PB's PACK Library. Der einzige weg ist die nötigen Details (Größe, Typ, Name, etc.) in einer Datei zu speichern. Entweder extern oder in deinem Archiv selber.Vielen Dank für die Beiträge, ich habs gecheckt, ich brauchte auch nur die richtige Anwendungsweise von openpack() und den restlichen erforderlichen Befehlen wissen. nur eine Frage: wie erkenne ich jetzt, was für einen Dateityp ich da entpacke (z.B. .mp3)?
Code: Alles auswählen
Structure PACKDATA
Name.s
Size.l
EndStructure
NewList pdat.PACKDATA()
Procedure AddPackData(Filename.s)
AddElement(pdat())
pdat()\Name = Filename
pdat()\Size = FileSize(Filename)
EndProcedure
; Pack Dateien temporär in eine LinkedList laden
AddPackData("myFile1.mp3")
AddPackData("myFile2.txt")
AddPackData("myFile3.bmp")
; ...........
; Archiv Struktur erstellen
Result = CreateFile(#PB_Any,"Index.dat")
ForEach pdat()
WriteWord(ListIndex(pdat()))
WriteString(pdat()\Name) : WriteByte(0)
WriteLong(pdat()\Size)
Next
CloseFile(Result)
; Archiv erstellen
CreatePack("myArchive.pak")
; Archiv Struktur hinzufügen
AddPackFile("Index.dat",4)
; Dateien hinzufügen
ResetList(pdat())
ForEach pdat()
AddPackFile(pdat()\Name)
Next
; Archiv schließen
ClosePack()
Code: Alles auswählen
datei$ = OpenFileRequester("Archiv öffnen","C:\","VMeA-Archiv (*.vmea)|*.vmea",0)
pfad1$ = PathRequester("Ordner wählen","C:\")
If datei$ <> "" And pfad1$ <> ""
OpenPack(datei$)
Repeat
adresse = NextPackFile()
CreateFile(0,"Willi.txt")
WriteData(0,adresse,PackFileSize())
CloseFile(0)
OpenFile(0,"Willi.txt")
text$ = ReadString(0)
CloseFile(0)
DeleteFile("Willi.txt")
adresse2 = NextPackFile()
CreateFile(0,pfad1$+text$)
WriteData(0,adresse2,PackFileSize())
CloseFile(0)
Until PackFileSize() = 0
ClosePack()
EndIf
Code: Alles auswählen
datei$ = OpenFileRequester("Archiv öffnen","C:\","VMeA-Archiv (*.vmea)|*.vmea",0)
pfad1$ = PathRequester("Ordner wählen","C:\")
If datei$ And pfad1$
If OpenPack(datei$)
Repeat
adresse = NextPackFile()
If CreateFile(0,"Willi.txt")
WriteData(0,adresse,PackFileSize())
CloseFile(0)
Else:Debug "error:createfile 1"
EndIf
If OpenFile(0,"Willi.txt")
text$ = ReadString(0)
CloseFile(0)
Else:Debug "error:openfile"
EndIf
DeleteFile("Willi.txt")
adresse2 = NextPackFile()
If CreateFile(0,pfad1$+text$)
WriteData(0,adresse2,PackFileSize())
CloseFile(0)
Else:Debug "error:createfile 2"
EndIf
Until PackFileSize() = 0
ClosePack()
Else
Debug "error:openpack"
EndIf
Else
Debug "string error:"+datei$
Debug "string error:"+pfad$
EndIf