unzip файлов при помощи тотала

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Gentoo69
Сообщения: 68
Зарегистрирован: Вс июл 11, 2010 19:58

unzip файлов при помощи тотала

Сообщение Gentoo69 »

Делаю content плагин .Нужно распаковать zip файлы в память, ищу чем бы это сделать (пока chiefzip 2003 года). Желательно чтобы была распаковка поблочная, - мне весь файл не надо распаковывать, всего первые 2-5 кб.
Было бы идеально заюзать для этого WCMZIP32.DLL или встроенные фичи тотала, если это возможно.
Пишу на Delphi 2009.
Подскажите возможно ли это (втч. поблочная распаковка) и как это сделать?
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

У TZipForge есть событие
onFileProgress(Sender: TObject; FileName: String; Progress: Double; Operation: TZFProcessOperation; ProgressPhase: TZFProgressPhase; var Cancel: Boolean)

Думаю, переменная Cancel - это то, что надо. Кол-во байт от процентов вычислить несложно.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

в исходнике OpenOffice.org simple viewer есть dll. К ней в папке Proc - Делфи-интерфейс. В нем - WizUnzipToMemory
Gentoo69
Сообщения: 68
Зарегистрирован: Вс июл 11, 2010 19:58

Сообщение Gentoo69 »

Alextp писал(а):в исходнике OpenOffice.org simple viewer есть dll. К ней в папке Proc - Делфи-интерфейс. В нем - WizUnzipToMemory
Это Info-Zip's header files for its UnZip32.dll - известная фича. Хотелось бы конечно чтобы не таскать с собой dll . В принципе можно заюзать ZipForge - он без исходиков но со скомпилинной dcu. Тут фишка в том что туда входят и компрессор и остальное, - т.е. будет мертвый груз в пределах 200 кб.
Gentoo69
Сообщения: 68
Зарегистрирован: Вс июл 11, 2010 19:58

Сообщение Gentoo69 »

Моторокер писал(а):У TZipForge есть событие
onFileProgress(Sender: TObject; FileName: String; Progress: Double; Operation: TZFProcessOperation; ProgressPhase: TZFProgressPhase; var Cancel: Boolean)

Думаю, переменная Cancel - это то, что надо. Кол-во байт от процентов вычислить несложно.
Я смотрел их компонент, там есть отдельная фича для этого, указываешь размер буфера и все.
Ответить