VCL альтернатива IStorage
-
03-07-2019 - |
Вопрос
Для предисловия я использую 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.
Очень надежное, но не самое дешевое решение (372 доллара за одного разработчика).
Я выбрал ZipForge от ComponentAce. Это быстро, активно развивается / поддерживается и имеет идеальный интерфейс для поддержки того, что я хочу.
Спасибо за другие предложения.
Если вы не хотите хранить огромный файл (он ограничен 2 ГБ), GPStructuredStorage может быть удобно.
Это структурированная библиотека с открытым исходным кодом, написанная на чистом Delphi, которая до сих пор поддерживается и, похоже, работает с D2010.