Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите распаковать gzip [D7, WinXP]


Страницы:   1 2

Вопрошающий ©   (2007-10-28 02:00:00) 

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

пытался использовать функцию для распаковки строки сжатой zlib:
[code]
uses zlib;
...
function Unzlib(inpStr:string):string;
var
 OutBuf: Pointer;
 OutBytes: Integer;
 outstream:TStringStream;
begin
 OutStream:=TStringStream.create('');
 OutBuf := nil;
 try
   try
     DecompressBuf(pointer(InpStr), length(InpStr), 0, OutBuf, OutBytes);
     outStream.Write(OutBuf^, OutBytes);
   finally
     if OutBuf <> nil then FreeMem(OutBuf);
   end;
 outStream.Position := 0;
 Result:=outstream.DataString;
 finally
   OutStream.Free;
 end;
end;
[/code]

предварительно обрезавши первые 10 байт (сигнатура гзип), и добавивши 2 байта (сигнатура zlib), а также обрезавши последние 8 байт (CRC32+ISIZE) (RFC1952)
Но все равно не могу распаковать строку.
Возможно это из-за того что в zlib после самого сжатого потока должно быть 4 байта, где используется не CRC32, а ADLER32 (RFC1950). Но его естественно я никаким образом не смогу получить.

Может кто-нить подскажет, как все-таки распаковать данные, сжатые gzip, не используя сторонних компонентов?
Тем более что в WIN уже имеется библиотека gzip.dll, неплохо было бы ее задействовать, но вот ее описание не могу нигде найти.


homm   (2007-10-29 06:16:00) [21]

> [0] Вопрошающий   (28.10.07 02:00)
> пытался использовать функцию для распаковки строки сжатой
> zlib:
> Но все равно не могу распаковать строку.

А должен был смочь?


Slym   (2007-10-29 06:11:00) [22]

в 10Indy тоже есть GZip декомпресор


Slym   (2007-10-29 06:10:00) [23]

FastReport\Source\frxGZip.pas


Вопрошающий   (2007-10-28 18:21:00) [24]


> выдаст море ссылок.


ссылок-то море, но вот толку от них никакого...
Причем большая часть ссылок - это чьи-то аналогичные вопросы, причем с такими ответами как Ваш...  Прям рекурсия какая-то... :-)
только на Королевстве нашел целую кучу подобных вопросов с ответами, заключающими в себе перенаправление куда подальше, в т.ч. гугль и т.п.

Ну нашел я один пример на сях. Но честно говоря, я так и не понял его. Да и что-то он мне доверия не внушает.


Dimaxx   (2007-10-28 10:46:00) [25]


> вот ее описание не могу нигде найти

Плохо искал - погугли "gzip.dll+delphi" - выдаст море ссылок. Первые же 2-3 дают ответ.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо