Add compression levels to ZipPacker
Posted: Tue Mar 19, 2013 11:29 am
store, fast and max
thx.
thx.
http://www.purebasic.com
https://www.purebasic.fr/english/
I'm supporting you!sartic wrote:not even one msg of support
Code: Select all
EnableExplicit
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
ImportC "zlib.lib"
compress2(*dest,*destlen,*source,sourcelen,level)
EndImport
CompilerElse
ImportC "-lz"
compress2(*dest,*destlen,*source,sourcelen,level)
EndImport
CompilerEndIf
Procedure AddPackFile2(Pack,FileName$,PackedFilename$,level=9)
Protected fn,*output,*input,outlen,filelen,result
fn = ReadFile(#PB_Any,FileName$)
If fn
filelen = Lof(fn)
outlen = filelen * 1.5
*input = AllocateMemory(filelen)
*output = AllocateMemory(outlen)
If *input And *output
If ReadData(fn,*Input,Filelen) = filelen
If Compress2(*output,@outlen,*Input,Filelen,level) = 0
Result = AddPackMemory(Pack, *output, outlen, PackedFilename$)
EndIf
EndIf
FreeMemory(*input)
FreeMemory(*output)
EndIf
CloseFile(fn)
EndIf
ProcedureReturn Result
EndProcedure
UseZipPacker()
Define file.s,packfile.s,extn.s,pack.i
file = OpenFileRequester("Choosefile","","*.*",1)
extn = GetExtensionPart(file)
packfile = Left(file,Len(file)-Len(extn)) + "zip"
pack = CreatePack(#PB_Any,packfile,#PB_PackerPlugin_Zip )
AddPackFile2(pack,file,packfile,9)
ClosePack(pack)
Which support?sartic wrote:not even one msg of support