![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как извлечь GZIP файлы
D7pro © (2006-03-09 18:03:00)Пытаюсь разархивировать файлы в формате GZIP. Перепробовал разные компоненты, такие как filetools 2.0, TurboPower Abbrevia v3.04, ZipTV.7.0.6. Проблемма в том что они извлекают архив не полностью. Если архив распаковать winrar-ом, то получаю 11 кб, с помошью моей проги 276 байт. На всех трех компонентах разультат один и тотже. Может кто сталкивался с такой проблемой подскажите !!!
D7pro (2006-03-14 11:01:00) [1]Ты имеешь ввиду консольный RAR ??? Была такая мысль, но по моему это не красиво. Все равно спасибо за помощь !!!
Slym (2006-03-14 06:53:00) [2]INDY пользует ZLibEx может он чемнибудь отличается от обычного ZLib... тебе всего нужно переделать DecompressGZipStream под ZLib.TDecompressionStream
И вообще - Тебя RAR не устроит?
D7pro (2006-03-13 12:04:00) [3]Сделал так.
procedure TForm1.Button1Click(Sender: TObject);
var
s1: TFileStream;
s2: TMemoryStream;
Decompressor:TIdCompressorZLibEx;
begin
s1:=TFileStream.Create('C:\download\Aug-2005.gz',fmOpenReadWrite);
s2:=TMemoryStream.Create;
Decompressor:=TIdCompressorZLibEx.Create;
Decompressor.DecompressGZipStream(s1,s2);
s2.SaveToFile('C:\download\1.txt');
end;
В результате файл 1.txt пустой, а архив Aug-2005.gz становится битый. Может DecompressGZipStream распаковывает mod_gzip. Мне нужно распаковать лог файлы с сервака. Неужели никто не сталкивался с этой проблемой ???
Кстати когда заменяю fmOpenReadWrite на fmOpenRead то возникает ошибка 'Stream Write Error', зачем он пишет в архивный файл ???
Slym (2006-03-13 07:36:00) [4]IdZLibCompressorBase.pas - абстрактная реализация
реально реализовано в - IdCompressorZLibEx.pas TIdCompressorZLibEx
Palladin (2006-03-11 12:13:00) [5]const s2: TStream=nil;
Это что еще такое?
D7pro (2006-03-10 16:34:00) [6]Slym. Подскажи пожалуйста еще одну вещь. Как правильно передать параметры этой процедуре. Делаю так.
procedure TForm1.Button1Click(Sender: TObject);
var
s1: TFileStream;
Decompressor:TIdZLibCompressorBase;
const s2: TStream=nil;
begin
s1:=TFileStream.Create('C:\download\Aug-2005.gz',fmOpenReadWrite);
Decompressor:=TIdZLibCompressorBase.Create;
Decompressor.DecompressGZipStream(s1,s2);
end;
На последней строке вылетает ошибка 'Abstract error'. Что делать ???
D7pro (2006-03-10 15:58:00) [7]Спасибо сейчас попробую.
Slym (2006-03-10 14:22:00) [8]INDY10 IdZLibCompressorBase.pas
procedure TIdZLibCompressorBase.DecompressGZipStream(AStream : TStream; const AOutStream : .........
D7pro (2006-03-09 18:30:00) [9]Для delphi 7 я нашел только два компонента ZipTV.7.0.6 и filetools 2.0 и они не правльно работают, во всяком случае нужные мне файлы распаковывают не до конца. А как называется тот компонент ???
Fay (2006-03-09 18:08:00) [10]На torry.net есть компонент для gzip. Галюнов пока не замечено.