Использование ZIP

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

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

ViruZ
постоялец
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина
Контактная информация:

Использование ZIP

Сообщение ViruZ »

Какие библиотеки (желательно со ссылками) можно использовать в FP для создания ZIP-архивов? Хочу создавать со своей программы файлы в формате OpenDocument, описание формата скачал, там достаточно просто - несколько XML-файлов, запакованых в ZIP-архив, с XML понятно, а как запаковать - не могу разобраться. Вроде как для этого используется ZLIB?
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

Она так и называется zlib. Входит в стандартный набор модулей.
Replicator
постоялец
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven
Контактная информация:

Сообщение Replicator »

По-моему, zlib не работает с zip.
Аватара пользователя
Romtek
постоялец
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган
Контактная информация:

Сообщение Romtek »

Zlib, по-моему, работает только с компрессией Z.
Поищи Info-Zip Zip32.dll
NickCore
незнакомец
Сообщения: 6
Зарегистрирован: 25.03.2006 10:47:34
Откуда: Витебск

Сообщение NickCore »

Почти все компоненты можно найти в
http://wiki.lazarus.freepascal.org/inde ... e_examples
http://sourceforge.net/project/showfile ... _id=193581

в частности возможно тебе пригодится FreePascalArchivePackage
http://wiki.lazarus.freepascal.org/inde ... ivePackage

Сам я им не пользовался и не знаю на сколько он хорош.
@lex
постоялец
Сообщения: 180
Зарегистрирован: 19.06.2006 13:16:29
Откуда: Невинномысск
Контактная информация:

Сообщение @lex »

А можно конкретно про zlib спросить:
В стандартном наборе FPC 2.0.2 есть пример использования, в файле minigzip.pas. Для создания архивного файла вызывается функция gzopen (outname, mode). Первый параметр понятен, а вот что нужно передать в mode (string) - попробовал пустоту ('') - выдает ошибку при создании файла, а если хоть чего нибудь написать, то Access Violation :(
Bohdan
новенький
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv
Контактная информация:

Сообщение Bohdan »

Бери лучше 7-zip, жмет лучше чем RAR.

Всю инфу можешь найти здесь:
http://www.7-zip.org

Тебе нужно
// 7-zip32.dll written by Akky. Download it here:
http://akky.cjb.net/download/7-zip32.html
create and extract 7 zip archives with delphi (пойдет по моему почти без переделки)
http://cc.borland.com/Download.aspx?id=23301

тебе нужно использовать switches -tzip, что бы получались zip архивы

Дополнительно либа:
http://www.7-zip.org/sdk.html

Port of LZMA SDK to Pascal (Delphi, Kylix and Freepascal)
http://www.birtles.org.uk/programming/
@lex
постоялец
Сообщения: 180
Зарегистрирован: 19.06.2006 13:16:29
Откуда: Невинномысск
Контактная информация:

Сообщение @lex »

Спасибо! Только вот чтобы скачать модуль для Дельфи нужно быть членом их сообщества...
Хотя наверное ещё проще заюзать консольную версию...
Bohdan
новенький
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv
Контактная информация:

Сообщение Bohdan »

нужно быть членом их сообщества...

Вообще то там бесплатно нужно зарегистрится :
https://members.borland.com/newuser.aspx
8)
если будут проблемы, могу отправить на мыло, весит - 6 кило ;)
@lex
постоялец
Сообщения: 180
Зарегистрирован: 19.06.2006 13:16:29
Откуда: Невинномысск
Контактная информация:

Сообщение @lex »

Да ладно, я уже нашёл одну прикольную штучку, которая запросто создаёт нечто вроде zip-а, только со своим заголовком (ZAR вместо PK). Так вот ни WinRAR ни TotalCommander его не поняли, а запаковать/извлечь файл(ы) - проще простого. Подключаешь один модуль и всё! (zlibar.pas - 24 Kb) и никаких dll-шек! :D :D :D
ev
долгожитель
Сообщения: 1791
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение ev »

сейчас столкнулся с подобной задачей
тоже думал заюзать 7-zip, но какой то он медленный получается
остановился на связке tar + gzip (консольные кросплатформенные версии)

одно плохо - сложно достать компиленные последние версии под винды
кто может компильнуть? :)
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

@lex писал(а):А можно конкретно про zlib спросить:
В стандартном наборе FPC 2.0.2 есть пример использования, в файле minigzip.pas. Для создания архивного файла вызывается функция gzopen (outname, mode). Первый параметр понятен, а вот что нужно передать в mode (string) - попробовал пустоту ('') - выдает ошибку при создании файла, а если хоть чего нибудь написать, то Access Violation :(

Конечно можно, я разрешаю :lol:

Могу конечно ошибаться но синтаксис параметра mode аналогичен соответствующему параметру функции fopen из стандартной библиотеки C. Соотвественно для чтения 'r', 'w' - запись файла + еще можно указывать степень компрессии 'wN', где N - цифра от 0 до 9 - максимальная компрессия 'w9' - минимальная (т.е. без компрессии) 'w0'.
Из анализа исходников (из оригинальной версии zLib 1.2.3) поддерживаются еще модификаторы f (strategy = Z_FILTERED, чё означает не в курсе), h (strategy = Z_HUFFMAN_ONLY, более-менее понятно...), R (strategy = Z_RLE, ну тут вообще вопросов нет)..
Аватара пользователя
Alexander
энтузиаст
Сообщения: 864
Зарегистрирован: 18.12.2005 18:10:00
Откуда: оттуда
Контактная информация:

Сообщение Alexander »

Replicator
постоялец
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven
Контактная информация:

Сообщение Replicator »

кто может компильнуть?

Чем? gcc? Если качать не более 1 Мб, я могу.
Аватара пользователя
Alexander
энтузиаст
Сообщения: 864
Зарегистрирован: 18.12.2005 18:10:00
Откуда: оттуда
Контактная информация:

Сообщение Alexander »

Качать: tar - 1.8мб gzip - 400кб.

Как собрать кроссом под Линукс не понял. Хотя и кроссовые
бинутилс есть и гсс. Не знаю какие параметры давать и можно ли
в принципе (не требуется ли какой нибудь патч).
Ответить