; ; ------------------------------------------------------------ ; ; PureBasic - Compressor example file ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; UseBriefLZPacker() ; Small and fast packer If ReadFile(0, OpenFileRequester("Выберите файл для сжатия", "", "*.*", 0)) FileLength = Lof(0) ; Выделит 2 буфера памяти, необходимые для сжатия.. ; *Source = AllocateMemory(FileLength) *Target = AllocateMemory(FileLength) If FileLength And *Source And *Target ReadData(0, *Source, FileLength) ; Считает весь файл в буфер памяти ; Сжатие файла, который находится в памяти (используйте таймер, чтобы увидеть время, затрачиваемое на сжатие...). ; CompressedLength = CompressMemory(*Source, FileLength, *Target, FileLength) If CompressedLength DecompressedLength = UncompressMemory(*Target, CompressedLength, *Source, FileLength) If DecompressedLength = FileLength MessageRequester("Инфо", "Достижения сжатия: "+#LF$+#LF$+"Старый размер: "+Str(FileLength)+#LF$+"Новый размер: "+Str(CompressedLength)) EndIf Else MessageRequester("Ошибка", "Невозможно сжать файл") EndIf FreeMemory(*Source) FreeMemory(*Target) EndIf CloseFile(0) EndIf End