Запись структурированых даных в файл. Идеи и проблемы.
От: IIYCTOTA  
Дата: 13.10.05 10:20
Оценка:
Наверное многим приходилось запоминать структурированые данные в файле. Знакома проблема с версиями софта: импорт данных в младшие, старшие версии.

Возможные методы, какие я вижу дя решения:

1. Самое простое – это снабдить файл версией и записать туда сырые даные. Более младшие версии снабдить конвертером. Но как быть в быть случае со старшими вресиями и данными, записаными младшими версиями? Придётся сделать отдельный файл – конвертер из любой версии в любую. Работает стопроцентово, но некрасиво.

2. Можно записать данные в ASCII формате. Довольно легко реализуется, но в случае, если значения взаимозависемы (нередкий случай) если используются различные значения по умолчанию ... придётся писать частичный конвертер или верификатор.

3. Можно записать даные в виде специального метаязыка для данных типа ASN.1. Ну-у-уу сложно всё. Запоминать данные приходится каждому, а вот на постижение технологий для этого вечно нет времени.

Интересно было бы послушать кто и к какой опыт наработал в области. Может кто кинет мысль? Не жлобитесь, раз придумали чтото – поделитесь и придумаете потом ещё круче)). Может кто знает хороший источник на эту тему?

Мой ичный опыт: я пришел к целесообразности решения (1), которое стабдил некоторыми преимуществами метода (2): Файл состоит из независимых структур. Каждая имеет идентификатор (при изменении в структуре идентификатор изменяется тоже). При импорте импортируются только те структуры, идентификаторы которых известны для конкретной версии софта.

Дополнительно (при необходимости) для каждой отдельной структуры пишу конвертер–функцию, которая конвертирует структуру А из версии V в версию V+1. Конвертер функции собираю в массив ... короче автоматизирую – думаю, что идея ясна.

ПС: если была уже такая тема — прошу прощения, я её не нашел
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.