![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите распаковать gzip [D7, WinXP]
Вопрошающий © (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 дают ответ.