VCL alternative to IStorage
-
03-07-2019 - |
Question
To preface I am using Borland C++ and the VCL.
I need some sort of structured storage object which can be saved to disk as a single file and can contain multiple named blobs of binary data which I can programatically enumerate, access and manipulate.
The IStorage interface seems to be close what I want but I would prefer a VCL style solution as converting TStream's (VCL) to IStream's among other things gets awkward and their must be a simpler solution using the VCL stuff allready available, like a TIniFile but for binary data.
I don't want to use XML as the binary data blobs are very large and when correctly encoded for use in XML it's completely inneficient.
Thanks in advance for all suggestions.
Solution
A zip file is de facto a standard container, and it seems you can get a TStream interface to them: http://www.tek-tips.com/faqs.cfm?fid=6734
OTHER TIPS
SolFS (Solid File System) from Eldos.
Very reliable, but might not be the cheapest solution ($372 for one developer).
I went for ZipForge by ComponentAce. It's fast, is being actively developed/supported and has the perfect interface to support what I want.
Thanks for everybodys other suggestions.
If you don't want to store huge file(it has 2GB limit), GPStructuredStorage might be handy.
It's a open source structured storage library written in pure delphi, still maintained and seems to be worked with D2010.