В общем случае решается с помощью потоков.
Внутренняя организация файла будет примерно такой:
[сигнатура]
[кол-во блоков]
[блок 1]
[блок 2]
...
[блок N]
Блок примерно будет такой:
[Тип блока]
[Размер блока]
[Данные блока]
Далее делается класс, который умеет писать/читать такой файл. К нему будут так же классы, обеспечивающие реализацию хранения, записи и чтения соответсвующих типов блоков.
Реально, работы на пару часов для начала (2-3 типа блоков + основной класс).
|