Function CompressMem(Byref BUF_DEST As Byte Ptr,byval SOURSEDATA As Byte ptr,Byval SIZEDATA As ULong, ByVal level As long=5) As Long
Позволяет сжимать(архивировать) память. Возвращает результат сжатой памяти.
BUF_DEST - Адрес буфера приемника (может быть размером таким же как несжатый, все равно в функции выравнивается до нужного)
SOURSEDATA - Адрес исходного несжатого буфера
SIZEDATA - Размер исходного несжатого буфера
level - уровень сжатия (1-9). 1 самое быстрое, но и самое плохое сжатие.
Windows , Linux
#Include "window9.bi"
Dim As Byte Ptr sourse=Allocate(10000005),Dest= Allocate(10000)
Dim As Integer sizeCompress
For a As Integer=1 To 10000000
Poke sourse+a, a
Next
sizeCompress=compressMem(dest,sourse,10000000)
? sizeCompress
? decompressMem(dest,sizeCompress,sourse)
Sleep
DeAllocate(sourse):DeAllocate(dest)
39123
10000000
Created with the Personal Edition of HelpNDoc: Full featured Documentation generator