Delphi-5 решение для хранения одного файла?
Существует ли решение Delphi-5 для простой интеграции хранилища с одним файлом в существующий код? Я хотел бы иметь файлы, такие как файлы документов Java *.jar или Openoffice, которые представляют собой сжатые / сжатые файлы и папки, но с собственным расширением файла.
Редактировать: я знаю некоторые компоненты с поддержкой ZIP, но в двух словах я хочу получить доступ к файлам внутри "контейнера" и использовать обычные процедуры обработки файлов на них (например, TStringList.SaveToFile). Любые накладные расходы на сжатие / распаковку должны обрабатываться компонентом.
5 ответов
Просто используйте формат.zip. Вы можете изменить расширение файла на любое, что вы хотите, его содержимое файла, которые важны. Для Delphi доступно множество сторонних Zip-решений, как бесплатных, так и коммерческих. Посмотрите вокруг (моя компания использует ZipForge)
Я использую THKStream для этой задачи. Он работает хорошо и быстро и прост в использовании, вы можете хранить в нем обычные потоки и сжимать их в один файл. Freeware. Вот ссылка: http://www.xarka.com/freeware/components.html
Взгляните на этот блок OpenSource SynZip. Это даже быстрее для распаковки, чем модуль по умолчанию, поставляемый с Delphi, и он создаст меньший exe (таблицы crc создаются при запуске).
Для Delphi 5 взгляните на еще один открытый паскаль с открытым исходным кодом, названный PasZip.
Я использую его в очень маленькой программе установки exe. Он может распаковать любой zip-контент, и вы даже можете добавить zip-файл в исполняемый файл. Смотрите эту ссылку, чтобы узнать, как использовать такой почтовый индекс, встроенный в исполняемый файл.