views:

347

answers:

4

Hello

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.

A: 

SolFS (Solid File System) from Eldos.

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

Very reliable, but might not be the cheapest solution ($372 for one developer).

Stefan Schultze
+1  A: 

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

MSalters
A: 

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.

QAZ
A: 

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.

benok