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


Автор: Midaw 7.12.2005, 06:53
Хотелось бы создать файл и работать с ним как с контейнером для других файлов, как с виртуальным диском. Но я не представляю как это сделать и пример найти не могу. Кто-нибудь подскажет в какую сторону копать? Застрял я!

Автор: ~FoX~ 7.12.2005, 09:21
Ресурсы

Автор: Midaw 7.12.2005, 09:32
Это был дельный совет ?) По ресурсам я уже полазил smile ща минус поставлю (шутка) ;)

Автор: ~FoX~ 7.12.2005, 09:46
Midaw
Не понял.....Какой вопрос - такой ответ. Опиши задачу по конкретний - какие файла нужно хранить, их количество, что с ними потом надо делать и т.д. Да и вообще нафига?
Чем тебе ресурсы не нравятся?
Ну не хочешь использовать ресурсами, используй ДЛЛ-ки.

Автор: Midaw 7.12.2005, 10:05
Ну есть большое количество музыки, видео и рисунков для мобил. И все это хочется хранить в одном файле.. Программой импортировать и экспортировать, подписывать и т.д. Собственно библиотека в одном файле! Ресурсы, дошло о чем речь. Но это не катит, это ехе скомпилированный. А здесь нужно все иметь в динамике, пускай не распределенной по сети. Хотя тоже интересно. Ничего по теме найти не смог, только примеры уже в готовых проектах.

Автор: Snowy 7.12.2005, 10:12
Может тебе ZIP подойдет?

Автор: Midaw 7.12.2005, 12:39
Исходники зипа смотреть? Больше мыслей нет?)

Автор: _hunter 7.12.2005, 12:45
зачем смотреть? есть готовые компоненты ( тот же VCLZip )

Автор: Snowy 7.12.2005, 13:00
Вот когда-то писал. Правда сохранение в ZIP не делал - только выковыривание из ZIP'a.
Пишет только на диск, читает с диска и из ZIP'a.
При желании можно и запись в ZIP добавить, но это процесс слишком долгий, а писалось для игрушки.
Добавлено @ 13:01
Сам модуль зовется ZFS.pas - ZIP FileSystem.
Функции описаны в начале модуля.
dpr - пример работы.

Автор: Midaw 12.12.2005, 05:29
ZFS не подходит! Нужно, что-то более динамичное. Добавление небольшого файла в большой архив должно происходить быстро, без всякой перепаковки! Есть ещё предложения???

Автор: Snowy 12.12.2005, 10:09
Цитата(Midaw @ 12.12.2005, 05:29)
Добавление небольшого файла в большой архив должно происходить быстро, без всякой перепаковки!

Добавление можно. А вот удаление или замена - нет.
Это просто физически нереально, если только мы не согласны терять место, а перепаковывать раз в N-й период.

Автор: Midaw 12.12.2005, 11:04
Это ещё почему не возможно??? Просто писать долго, получается целая подфайловая система со всякими фрагментациями. %) Короче никто подобное написанное не видел? Придется писать самому... Велосипед изобретать...

Автор: ~FoX~ 12.12.2005, 11:35
А не выйдет у тебя бОльшей производительности:
Смотри, для реализации быстрой работы, (замены или удаления файлов из пакета), логичнее всего зранить хранить таблицу с метками начала и конца файлов, и их имен (ну типа FAT smile ). Это все будет чудестно работать если только заменяемый файл будет того же размера, что и заменяющий....Иначе придется периписывать все файлы следующие за ним для: 1. устранения фрагментации (если файл меньше, или файл просто удаляется). 2. Для того чтоб файл влез (если он больше).
Выйгрышь в скорости ты получишь только за счет отсутствия алгоритма сжатия.


Добавлено @ 11:37
З.Ы. Кстати даже если реализовывать без таблици размещения, все равно, те жи грабли и будут smile

Автор: Snowy 12.12.2005, 11:47
Цитата(Midaw @ 12.12.2005, 11:04)
Короче никто подобное написанное не видел?

Видел. У себя на машине. На основе KOL ZLib.
Но не дам. Еще в разработке.
Добавлено @ 11:49
Цитата
логичнее всего зранить хранить таблицу с метками начала и конца файлов, и их имен (ну типа FAT

Угу. Только начала и длина файла. А также имя и пр необходимые аттрибуты.
И хранить в конце файла. А при добавлении нового, на место таблицы писать новый файл, а саму таблицу перносить снова в конец, добавляя в нее новую запись.

Автор: Midaw 12.12.2005, 14:18
блин, начинаем изобретать велосипед. Короче могу на многих моментах поспорить, но буду тупо искать исходники с подобным.

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