Поддержка библиотеки сжатия ZLib
Материал из DRKB
В Delphi 7 официально включена поддержка библиотеки сжатия ZLib. Если у вас более старшая версия посмотрите модули ZLib в дистрибутиве среды (они должны быть на диске но подключать придеться самому).
Библиотеки под разные платформы, среды разработок и документация на сайте www.gzip.org/zlib.
Степень сжатия превосходит алгоритм zip. Максимальная степень сжатия по алгоритму ZLib приближается к степени сжатия упаковщиком RAR.
Модули Zlib, ZlibConst.
При использовании необходимо подключить в описании Uses модуль ZLib.
пример использования:
Компрессия одного потока в другой[править | править код]
procedure ComressStream(ASource, ATarget: TStream; compressionRate: TCompressionLevel);
var
comprStream: TCompressionStream;
begin
// compression level : (clNone, clFastest, clDefault, clMax)
comprStream := TCompressionStream.Create(compressionRate, ATarget);
try
comprStream.CopyFrom(ASource, ASource.Size);
comprStream.CompressionRate;
finally
comprStream.Free;
end;
end;
Декомпрессия одного потока в другой:
procedure DecompressStream(ASource, ATarget: TStream);
var
decompStream: TDecompressionStream;
nRead: Integer;
buffer: array[0..1023] of Char;
begin
decompStream := TDecompressionStream.Create(aSource);
try
repeat
nRead := decompStream.Read(buffer, SizeOf(buffer));
ATarget.Write(buffer, nRead);
until nRead = 0;
finally
decompStream.Free;
end;
end;
Author: RoboSol
Source: Взято из http://forum.sources.ru
ID: 03193