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

Как извлечь GZIP файлы   Найти похожие ветки 

← →
D7pro   (2006-03-09 18:03) [0]

Пытаюсь разархивировать файлы в формате GZIP. Перепробовал разные компоненты, такие как filetools 2.0, TurboPower Abbrevia v3.04, ZipTV.7.0.6. Проблемма в том что они извлекают архив не полностью. Если архив распаковать winrar-ом, то получаю 11 кб, с помошью моей проги 276 байт. На всех трех компонентах разультат один и тотже. Может кто сталкивался с такой проблемой подскажите !!!


← →
Fay ©   (2006-03-09 18:08) [1]

На torry.net есть компонент для gzip. Галюнов пока не замечено.


← →
D7pro   (2006-03-09 18:30) [2]

Для delphi 7 я нашел только два компонента ZipTV.7.0.6 и filetools 2.0 и они не правльно работают, во всяком случае нужные мне файлы распаковывают не до конца. А как называется тот компонент ???


← →
Slym ©   (2006-03-10 14:22) [3]

INDY10 IdZLibCompressorBase.pas
procedure TIdZLibCompressorBase.DecompressGZipStream(AStream : TStream; const AOutStream : .........


← →
D7pro   (2006-03-10 15:58) [4]

Спасибо сейчас попробую.


← →
D7pro   (2006-03-10 16:34) [5]

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".  Что делать ???


← →
Palladin ©   (2006-03-11 12:13) [6]

const s2: TStream=nil;


Это что еще такое?


← →
Slym ©   (2006-03-13 07:36) [7]

IdZLibCompressorBase.pas - абстрактная реализация
реально реализовано в - IdCompressorZLibEx.pas TIdCompressorZLibEx


← →
D7pro   (2006-03-13 12:04) [8]

Сделал так.

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-14 06:53) [9]

INDY пользует ZLibEx может он чемнибудь отличается от обычного ZLib... тебе всего нужно переделать DecompressGZipStream под ZLib.TDecompressionStream
И вообще - Тебя RAR не устроит?


← →
D7pro   (2006-03-14 11:01) [10]

Ты имеешь ввиду консольный RAR  ??? Была такая мысль, но по моему это не красиво. Все равно спасибо за помощь !!!



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

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



Память: 0.47 MB
Время: 0.025 c
15-1143136894
X9
2006-03-23 21:01
2006.04.16
Проблемы с разделами


2-1144190463
WestBronx
2006-04-05 02:41
2006.04.16
HotKeys в Windows


4-1138716801
Still Swamp
2006-01-31 17:13
2006.04.16
Тапи


2-1143814789
Der Nechk@ssoff
2006-03-31 18:19
2006.04.16
Clean Image


15-1143311952
ArtemESC
2006-03-25 21:39
2006.04.16
Найти иголку в стоге сена...




   Наверх