Здравствуйте, TailWind, Вы писали:
TW>Пишу редактор
Как писали, первой хранится сигнатура, за ней — версия файла.
Отказаться от идеи считывать "блоб" из файла в объект в памяти целиком.
Можно использовать тэговый формат. Как пример, xml или json, где объекты доступны по именам/иерархиям, при этом не важно, где они лежат в файле физически. В двоичном виде такое тоже нетрудно организовать. При этом будет шанс (можно пытаться добиваться этого специально, если хочется), что старая версия будет читать более новый формат, предварительно предупредив пользователя о возможности трабла.
Здравствуйте, goto, Вы писали:
G>Отказаться от идеи считывать "блоб" из файла в объект в памяти целиком.
G>Можно использовать тэговый формат. Как пример, xml или json, где объекты доступны по именам/иерархиям, при этом не важно, где они лежат в файле физически. В двоичном виде такое тоже нетрудно организовать. При этом будет шанс (можно пытаться добиваться этого специально, если хочется), что старая версия будет читать более новый формат, предварительно предупредив пользователя о возможности трабла.
Это же очень просто. В двоичном файле после идетификатора секции пишется размер данных. Если идентификатор неизвестен — программа пропускает этот сегмент данных и читает следующий. Вроде так формат RIFF организован.
Здравствуйте, kgd, Вы писали:
kgd>Это же очень просто. В двоичном файле после идетификатора секции пишется размер данных. Если идентификатор неизвестен — программа пропускает этот сегмент данных и читает следующий. Вроде так формат RIFF организован.
Тэговые форматы часто так и устроены. А так, вплоть до использования БД.