1. ZipPacker.dll (Pack-Routinen aus PB 5.11)
2. ZipPacker.pbi (Include)
ZipPacker.pbi
Code: Alles auswählen
;/ === ZipPacker - Include (DLL) ===
;/ by Thorsten Hoeppner (Thorsten1867)
Prototype.i PType_ZIP_ExaminePack(PackID.i)
Prototype.i PType_ZIP_NextPackEntry(PackID.i)
Prototype.s PType_ZIP_PackEntryName(PackID.i)
Prototype.i PType_ZIP_PackEntrySize(PackID.i, Modus.i=#PB_Packer_UncompressedSize)
Prototype.i PType_ZIP_PackEntryType(PackID.i)
Prototype.i PType_ZIP_UncompressMemory(*Buffer, Size.i, *Output, OutputSize.i)
Prototype.i PType_ZIP_CompressMemory(*Buffer, Size.i, *Output, OutputSize.i)
Prototype.i PType_ZIP_AddPackMemory(PackID.i, *Buffer, Size.i, PackFileName.s)
Prototype.i PType_ZIP_RemovePackFile(PackID.i, File.s)
Prototype.i PType_ZIP_UncompressPackFile(PackID.i, File.s, PackFileName.s)
Prototype.i PType_ZIP_AddPackFile(PackID.i, File.s, PackFileName.s)
Prototype PType_ZIP_ClosePack(PackID.i)
Prototype.i PType_ZIP_OpenPack(PackID.i, ZipFile.s)
Prototype.i PType_ZIP_CreatePack(PackID.i, ZipFile.s)
ZipLib = OpenLibrary(#PB_Any, "ZipPacker.dll")
If ZipLib
Global ZIP_ExaminePack.PType_ZIP_ExaminePack = GetFunction(ZipLib, "ZIP_ExaminePack")
Global ZIP_NextPackEntry.PType_ZIP_NextPackEntry = GetFunction(ZipLib, "ZIP_NextPackEntry")
Global ZIP_PackEntryName.PType_ZIP_PackEntryName = GetFunction(ZipLib, "ZIP_PackEntryName")
Global ZIP_PackEntrySize.PType_ZIP_PackEntrySize = GetFunction(ZipLib, "ZIP_PackEntrySize")
Global ZIP_PackEntryType.PType_ZIP_PackEntryType = GetFunction(ZipLib, "ZIP_PackEntryType")
Global ZIP_UncompressMemory.PType_ZIP_UncompressMemory = GetFunction(ZipLib, "ZIP_UncompressMemory")
Global ZIP_CompressMemory.PType_ZIP_CompressMemory = GetFunction(ZipLib, "ZIP_CompressMemory")
Global ZIP_AddPackMemory.PType_ZIP_AddPackMemory = GetFunction(ZipLib, "ZIP_AddPackMemory")
Global ZIP_RemovePackFile.PType_ZIP_RemovePackFile = GetFunction(ZipLib, "ZIP_RemovePackFile")
Global ZIP_UncompressPackFile.PType_ZIP_UncompressPackFile = GetFunction(ZipLib, "ZIP_UncompressPackFile")
Global ZIP_AddPackFile.PType_ZIP_AddPackFile = GetFunction(ZipLib, "ZIP_AddPackFile")
Global ZIP_ClosePack.PType_ZIP_ClosePack = GetFunction(ZipLib, "ZIP_ClosePack")
Global ZIP_OpenPack.PType_ZIP_OpenPack = GetFunction(ZipLib, "ZIP_OpenPack")
Global ZIP_CreatePack.PType_ZIP_CreatePack = GetFunction(ZipLib, "ZIP_CreatePack")
EndIf
CompilerIf #PB_Compiler_IsMainFile
#Pack = 1
#Datei = 2
PackFile$ = "E:\Temp\Zip_Test.zip"
File$ = "E:\Temp\Test.txt"
Procedure File2Pack(File.s)
If ReadFile(#Datei, File)
length = Lof(#Datei)
*MemoryID = AllocateMemory(length)
If *MemoryID
If ReadData(#Datei, *MemoryID, length)
ZIP_AddPackMemory(#Pack, *MemoryID, length, "Test.txt")
EndIf
FreeMemory(*MemoryID)
EndIf
CloseFile(#Datei)
EndIf
EndProcedure
If ZIP_CreatePack(#Pack, PackFile$)
File2Pack(File$)
ZIP_ClosePack(#Pack)
EndIf
CompilerEndIf