Вниз
Скачать: CL | DM;

как сжать поток   Найти похожие ветки 

← →
iskatel ©   (2005-07-26 22:26) [0]

как сжать поток например LZW только чтоб на выходе тоже поток получился, а не зип файл, все это для передачи по сети, т.е. сжимать надо маленькие пакеты, и совсем не нужно чтобы в результат добавлялся зип заголовок


← →
Джо ©   (2005-07-26 22:32) [1]

Используй библиотеку ZLib, входящую в поставку Делфи. Там классы-наследники TCustomZlibStream являются потомками TStream. Класс находится в ZLib.dcu, сам pas-файл: в каталоге Extras стандартной поставки Delphi.


← →
Ученик   (2005-07-26 22:33) [2]

Ненужное удалить


uses
 ZLib;

procedure CompressStream(Source: TStream; Dest: TStream = nil; aLevel: TCompressionLevel = clFastest);
var
 DataSize: Integer;
 MemoryStream: TMemoryStream;
begin
 MemoryStream := TMemoryStream.Create;
 try
   DataSize := Source.Size;
   MemoryStream.Write(DataSize, SizeOf(DataSize));
   with TCompressionStream.Create(aLevel, MemoryStream) do try
     CopyFrom(Source, 0)
   finally
     Free
   end;
   if Dest = nil then begin
     Source.Size := 0;
     Dest := Source
   end;
   Dest.CopyFrom(MemoryStream, 0)
 finally
   MemoryStream.Free
 end
end;



← →
iskatel ©   (2005-07-26 22:36) [3]

2 вопроса

1 никаких заголовков и вообще ничего лишнего не добавится? распаковывается в обратной последовательности?

2 у меня билдер 6 и нету там zlib, где ее взять?


← →
Ученик   (2005-07-26 22:40) [4]

>iskatel ©   (26.07.05 22:36) [3]

>лишнего ничего не добавится, про билдер не знаю


procedure DecompressStream(Source: TStream; Dest: TStream = nil);
var
 DataSize: Integer;
 MemoryStream: TMemoryStream;
 D: TDecompressionStream;
begin
 MemoryStream := TMemoryStream.Create;
 try
   Source.Read(DataSize, SizeOf(DataSize));
   D := TDecompressionStream.Create(Source);
   with D do try
     MemoryStream.CopyFrom(D, DataSize)
   finally
     D.Free
   end;
   if Dest = nil then begin
     Source.Size := 0;
     Dest := Source
   end;
   Dest.CopyFrom(MemoryStream, 0)
 finally
   MemoryStream.Free
 end
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
1-1122121140
-virus-
2005-07-23 16:19
2005.08.14
OpenGL графика в проектах Delphi (книга)


3-1120425439
eLimar
2005-07-04 01:17
2005.08.14
Индексы Foxpro (cdx)


8-1111570778
the P
2005-03-23 12:39
2005.08.14
Помогите плз, как преобразовать PNG(8-битная прозрачность) в Ico?


1-1122313034
Aldaris
2005-07-25 21:37
2005.08.14
Чтение Boolean переменных из *.ini файлов.


3-1120736124
serguncho
2005-07-07 15:35
2005.08.14
Базы данных и ресурсы.




   Наверх