FVBUSICOULOUR 15
Pack- Unpack File
Samstag, 29. März 2008 um 21:58
Procedure PackFile(File.s, PackFile.s) 
Protected FFile = ReadFile(#PB_Any, File)
If FFile
If CreatePack(PackFile)
Protected FMem.l = AllocateMemory(10240000); 20 MB
If FMem
Protected FSize.l = 10240000
While Not Loc(FFile) = Lof(FFile)
If Lof(FFile) - Loc(FFile) < 10240000
FSize = Lof(FFile) - Loc(FFile)
EndIf
ReadData(FFile, FMem, FSize)
AddPackMemory(FMem, FSize)
Wend
EndIf
ClosePack()
EndIf
CloseFile(FFile)
FreeMemory(FMem)
EndIf
EndProcedure

Procedure UnPackFile(PackFile.s, File.s)
If OpenPack(PackFile)
Protected FFile = CreateFile(#PB_Any, File)
If FFile
Protected FData = NextPackFile()
If FData
Protected Size = PackFileSize()
While Size
WriteData(FFile, FData, Size)
FData = NextPackFile()
If FData
Size = PackFileSize()
Else
Break
EndIf
Wend
EndIf
CloseFile(FFile)
EndIf
ClosePack()
EndIf
EndProcedure
 
Kommentare (4)
4 Sonntag, 24. April 2011 um 16:29
Jürgen
Hi,

wer nicht 30 Sek. warten kann, bis eine 120 MB Datei durchgearbeitet ist, hat zwei Möglichkeiten;

1.) schnelleren Rechner besorgen

2.) von Hand packen

Grüße
J
3 Samstag, 24. Januar 2009 um 11:40
Stefan
Nach diesem Code für den Purebasic Packer habe ich schohn sehr lange gesucht.

jetzt kann ich auch entlich diese PB Funktion Benutzen

Danke

Und macht bitte so weiter mit den PB Funktionen
Weil wir ja auch erstmal PB lernen wollen
und dan ürgendwann den ganzen API Kram
2 Sonntag, 30. März 2008 um 13:18
edel
Der Packer von PB ist, beim packen, in der Tat sehr langsam, die Staerken liegen hier eher beim entpacken.
1 Sonntag, 30. März 2008 um 09:06
Caramba
Hm, gerade getestet und wieder gelöscht.
Das Packen und Entpacken funktioniert zwar, die hierfür benötigte erhebliche Zeit schließt eine vernünftige Verwendung jedoch aus.
Für eine Testdatei der Größe 120MB benötigt diese Routine gute 30 Sekunden, das ist inakzeptabel.
© 2012 www.realsource.de
free Joomla Template by funky-visions.de powered by greatnet.de Webhosting