Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: 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 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
3-1139599826
Варяг
2006-02-10 22:30
2006.04.16
Программное создание др-ра ODBC


2-1144097727
__alex
2006-04-04 00:55
2006.04.16
Чудеса с глобальными (public) переменными - 2


1-1142410007
Lera
2006-03-15 11:06
2006.04.16
юниты дельфи


2-1143557336
FastProgrammer
2006-03-28 18:48
2006.04.16
Потоки


15-1143096388
Dec
2006-03-23 09:46
2006.04.16
Подскажите хороший форум по VBA