Распокавать GZIP файл

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Распокавать GZIP файл

Сообщение SpLab » 01.08.2009 14:28:34

Посоветуйте пожалуйста как (чем) можно распаковать GZIP файл у которого удалена информация о файле (т.е. тип файла, тип архива, CRC, размер исходного файла и т.д.), т.е. имеется только кусок архивированных данных. Модуль GZIO я так понимаю может работать только с "честными" файлами имеющими правильную структуру.

Добавлено спустя 4 часа 22 секунды:
Посмотрел по встроенным возможностям, вроде ZLIB может подойти для этих целей, но чтото при добовлении в uses zlib, компилятор ругается Error: Import library not found for libz. Как с этим совладать?
SpLab
незнакомец
 
Сообщения: 4
Зарегистрирован: 01.08.2009 14:20:32

Re: Распокавать GZIP файл

Сообщение Verx0Laz » 01.08.2009 19:50:05

А если пропустить zlib и использовать 7-zip? Копируем 7z.exe и 7z.dll куда-нибудь в подкаталоги программы, потом внимательно изучаем справку по командной строке 7-zip (в сети есть русские версии) и собираем простенький модулёк на основе TProcess: там есть возможность запускать приложение с параметрами, консольное окно в невидимом режиме и ожидание завершения запущенного приложения, тоесть - всё, что нам нужно.
Аватара пользователя
Verx0Laz
постоялец
 
Сообщения: 125
Зарегистрирован: 11.09.2007 11:24:07

Re: Распокавать GZIP файл

Сообщение SpLab » 01.08.2009 22:30:30

Уже смотрел в сторону 7-zip - там насколько я понял нету возможности распаковать файл с одними только данными без заголовка. Но может я чегото недопонял?
В ZLIB есть функция низкого уровня inflate, насколько я понимаю если правильно её инициализировать, то можно чтото от этого получить. Но уж больно это сложно, может ктото возился с такой задачей, может у кого-то есть примерчик?
SpLab
незнакомец
 
Сообщения: 4
Зарегистрирован: 01.08.2009 14:20:32

Re: Распокавать GZIP файл

Сообщение Attid » 02.08.2009 10:09:17

SpLab писал(а):может ктото возился с такой задачей

думаю врятли.

может попробывать востановить заголовок ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Распокавать GZIP файл

Сообщение SpLab » 02.08.2009 13:50:27

Attid писал(а):думаю врятли.

может попробывать востановить заголовок ?


На текущий момент так и сделал. Но достоверно восстановить заголовок естественно не возможно, вернее не сам заголовок а CRC и размер исходного (не сжатого) файла в конце файла (последние 8 байт). Подставляю одинаковый заголовок ко всем сжатым кускам, пропускаю через zlib - zlib конечно же ругается, но всёже распаковывает. Впринципе работоспособно, но криво всё это.
Неужели и правда никто такого не делал?? В сети вроде пишут в php что-то сжимают gzip'ом и там никаких заголовков нету, но вот никаких примеров нету. Сейчас пытаюсь inflate из zlib прикрутить к этому делу, хочу подправить его под себя, прочитал RFC по методу кодирования.....чувствую изобретаю велосипед :(
SpLab
незнакомец
 
Сообщения: 4
Зарегистрирован: 01.08.2009 14:20:32

Re: Распокавать GZIP файл

Сообщение Deepthroat » 08.08.2009 19:54:29

В PHP запросто. Вот здесь смотреть примеры: http://ru2.php.net/manual/en/zlib.examples.php.
Аватара пользователя
Deepthroat
постоялец
 
Сообщения: 144
Зарегистрирован: 06.09.2007 00:21:34
Откуда: Outer Heaven

Re: Распокавать GZIP файл

Сообщение Sergei I. Gorelkin » 08.08.2009 20:16:28

SpLab писал(а):Посмотрел по встроенным возможностям, вроде ZLIB может подойти для этих целей, но чтото при добовлении в uses zlib, компилятор ругается Error: Import library not found for libz. Как с этим совладать?


Был баг наподобие этого, и его исправляли, довольно давно. Какая версия FPC?

Откуда вообще берутся эти сжатые данные?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Распокавать GZIP файл

Сообщение wavebvg » 10.08.2009 09:51:42

В дельфах такое может делать пару компонент - просто жать данные gzip-ом, в lazarus-е не знаю... Видимо надо копнуть по поводу Delphi - а потом найти альтернативу, название посмотрю на работе - если найду - отпишусь...
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru