VCL альтернатива IStorage
Для предисловия я использую Borland C++ и VCL.
Мне нужен какой-то структурированный объект хранения, который может быть сохранен на диск в виде одного файла и может содержать несколько именованных двоичных объектов двоичных данных, которые я могу программно перечислять, получать к ним доступ и манипулировать ими.
Интерфейс IStorage, кажется, близок к тому, что я хочу, но я бы предпочел решение в стиле VCL, поскольку преобразование TStream (VCL) в IStream, среди прочего, становится неуклюжим, и они должны быть более простым решением с использованием уже доступных материалов VCL, таких как TIniFile, но для двоичные данные.
Я не хочу использовать XML, так как двоичные двоичные объекты данных очень велики, а при правильном кодировании для использования в XML они совершенно неэффективны.
Заранее спасибо за все предложения.
4 ответа
Файл zip де-факто является стандартным контейнером, и, кажется, вы можете получить к ним интерфейс TStream: http://www.tek-tips.com/faqs.cfm?fid=6734
SolFS (Solid File System) от Eldos.
Очень надежный, но, возможно, не самый дешевый вариант (372 доллара за одного разработчика).
Я пошел на ZipForge от ComponentAce. Это быстро, активно развивается / поддерживается и имеет идеальный интерфейс для поддержки того, что я хочу.
Спасибо за все другие предложения.
Если вы не хотите хранить огромный файл (он имеет ограничение в 2 ГБ), GPStructuredStorage может пригодиться.
Это структурированная библиотека с открытым исходным кодом, написанная на чистом Delphi, которая до сих пор поддерживается и, похоже, работает с D2010.