; ; ------------------------------------------------------------ ; ; PureBasic - Compressor example file ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; UseBriefLZPacker() ; Small and fast packer If ReadFile(0, OpenFileRequester("Choose a file to compress", "", "*.*", 0)) FileLength = Lof(0) ; Allocate the 2 memory buffers needed for compression.. ; *Source = AllocateMemory(FileLength) *Target = AllocateMemory(FileLength) If FileLength And *Source And *Target ReadData(0, *Source, FileLength) ; Read the whole file in the memory buffer ; Compress the file, which is in memory (and use a timer to see the time spend by compression..) ; CompressedLength = CompressMemory(*Source, FileLength, *Target, FileLength) If CompressedLength DecompressedLength = UncompressMemory(*Target, CompressedLength, *Source, FileLength) If DecompressedLength = FileLength MessageRequester("Info", "De/Compression succeded:"+#LF$+#LF$+"Old size: "+Str(FileLength)+#LF$+"New size: "+Str(CompressedLength)) EndIf Else MessageRequester("Error", "Can't compress the file") EndIf FreeMemory(*Source) FreeMemory(*Target) EndIf CloseFile(0) EndIf End