Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Работа с архивами


Автор: LED 29.2.2008, 21:47
Здравствуйте

Встала проблема загрузки данных, в моем случае сложных конфигураций(куча текстовичков, картинок ит.п., раскиданных по сложной структуре папок), из архива (мне не важно какого) при выполнении программы.

Посоветуйте наиболее удобный для этого путь. (Может воспользоваться библиотекой, к примеру, zlib.dll??
При этом в итоге надо получить возможность лазания по архиву, как по обычной папке.) Или может есть другой путь?

Автор: jonie 29.2.2008, 23:16
наиболее удобный разработать модель абстрактную (интерфейсы и т.п.), а потом прикрутить любой вид архивов на нее (см. как например работает винда с zip архивами). Кстати можно виндой и воспользоваться (если винда).
Иначе поискать в гугле - таких "архивных" классов много.

Автор: LED 29.2.2008, 23:26
Вот об этом именно я и думал, только вот никак не могу найти нормальных спецификаций на туже zlib.dll
Насчет виндой воспользоваться - может подскажешь как можно влесть в архив

Автор: jonie 1.3.2008, 00:47
чет типа IStorage (сам я не пользовал, не уверен)

Автор: prof_GCC 1.3.2008, 09:41
Алгоритмы архивации давольно сложны, поэтому я бы не стал лезть в это, просто пользуй готовые либы

Автор: LED 1.3.2008, 17:13
2 jonie: IStorage попробую подюзать

2 prof_GCC: я и не собираюсь сам писать алгоритм архивации, спецификации на функции нужны чтобы знать как их использовать (аргументы, что делает и т.п.)

p.s. может кто знает что есть multivolume zip архив?

Автор: xvr 3.3.2008, 12:55
Цитата(LED @ 29.2.2008,  23:26)
Вот об этом именно я и думал, только вот никак не могу найти нормальных спецификаций на туже zlib.dll

www.zlib.org. В архиве есть папка contrib/minizip - ZIP упаковка и распаковка


Автор: LED 3.3.2008, 14:33
2 xvr: посмтрел unzip.h, наткнулся на следующее: 
Код

   Multi volume ZipFile (span) are not supported.
   Encryption compatible with pkzip 2.04g only supported
   Old compressions used by old PKZip 1.x are not supported


Что такое Multi volume ZipFile (span)?

Автор: bsa 3.3.2008, 15:09
Цитата(LED @ 3.3.2008,  14:33)
Что такое Multi volume ZipFile (span)?

Это многотомный архив. Т.е. когда у тебя архив разбит на несколько файлов (например, чтобы перенести данные объемом 1 гиг в зипе с помощью стандартных CD болванок, нужно создать многотомный архив, каждый том которого не более 650MB).

Автор: Nuzur 3.3.2008, 18:43
LED, А почему бы просто в лоб не решить?
Взять любую либу архивную, распаковать во временную директорию и так уже плясать с ним.

Автор: andrew_121 6.3.2008, 16:04
Ну помочь тебе что-ли ???
Щас подумаю...
Есть у меня то что тебе нужно, сам писал... Давно это было...

Автор: LED 6.3.2008, 17:49
2 bsa: спасибо за инфу
2 Nuzur: была такая мысль, только вот решение не сильно изящно выглядит
2 andrew_121: буду очень благодарен за экзамплы

Автор: andrew_121 6.3.2008, 18:10
Щас, они у меня с проектом связаны, нужно отодрать зависимости, постараюсь сегодня, не обещаю.

Автор: andrew_121 7.3.2008, 08:06
Вот, не то о чем я говорил, зато работает (Проверенно Nullsoft Inc.)
Сжатие добавишь в ф-цию 
Код
void ass_write(char *assfilename);


Удачи...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)