Вниз
Скачать: 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
2-1143987237
Ку Ку
2006-04-02 18:13
2006.04.16
SisTrey


15-1143011380
Бугага
2006-03-22 10:09
2006.04.16
Все голы сборной России по хоккею на Олимпиаде


15-1143567802
Нехочуха
2006-03-28 21:43
2006.04.16
Побольше дискуссий, хороший и разных.


15-1143142521
Anonym
2006-03-23 22:35
2006.04.16
Программы для МК-52/61


15-1143119465
paul_k
2006-03-23 16:11
2006.04.16
Спрашивали, "Где выпускниками опыта работы набиратся?)




   Наверх