Вопрос

Для предисловия я использую Borland C ++ и VCL.

Мне нужен какой-то объект структурированного хранилища, который может быть сохранен на диск в виде одного файла и может содержать несколько именованных двоичных объектов двоичных данных, которые я могу программно перечислять, получать к ним доступ и манипулировать ими.

интерфейс IStorage , по-видимому, закройте то, что я хочу, но я бы предпочел решение в стиле VCL, поскольку преобразование TStream (VCL) в IStream, среди прочего, становится неуклюжим, и они должны быть более простым решением с использованием уже имеющихся материалов VCL, таких как TIniFile, но для двоичных данных.

Я не хочу использовать XML, поскольку двоичные двоичные объекты данных очень велики, а при правильном кодировании для использования в XML они совершенно неэффективны.

Заранее благодарим за все предложения.

Это было полезно?

Решение

ZIP-файл де-факто является стандартным контейнером, и, кажется, вы можете получить к ним интерфейс TStream: http://www.tek-tips.com/faqs.cfm?fid=6734

Другие советы

SolFS (Solid File System) от Eldos.

http://www.eldos.com/solfs/

Очень надежное, но не самое дешевое решение (372 доллара за одного разработчика).

Я выбрал ZipForge от ComponentAce. Это быстро, активно развивается / поддерживается и имеет идеальный интерфейс для поддержки того, что я хочу.

Спасибо за другие предложения.

Если вы не хотите хранить огромный файл (он ограничен 2 ГБ), GPStructuredStorage может быть удобно.

Это структурированная библиотека с открытым исходным кодом, написанная на чистом Delphi, которая до сих пор поддерживается и, похоже, работает с D2010.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top