Re[9]: Челендж - сделать версионированный конфиг
От: bnk СССР http://unmanagedvisio.com/
Дата: 13.09.25 21:17
Оценка:
Здравствуйте, Marty, Вы писали:

M>Текстовый формат в любом случае не подходит. Различные подсистемы хотят на старте получить указатель на свою двоичную структуру, чтобы потом во время работы туда напрямую писать.

M>И конфиг хранится не во флеше, а епроме, там всего 16Кб

Так это тогда ни разу не "конфиг". RIFF (TLV) нормальный вариант, это работает десятилетиями, и проще сложно что-то придумать IMHO.

В тэг можно тип struct-а писать (StructX structY, etc), и номер ее версии например (X1, Y1, ну и т.п.)
Чтобы проще парсить, я бы запретил изменения, только дополнения полей.

Т.е. "Y2" это "Y1" с дополнительными полями.
Тогда код код который парсит Y1 можно использовать для парсинга Y2 тоже.
А если нужно поменять поле в структуре, заводишь новое.
Но в принципе опционально, просто код который это парсит должен быть сложнее.

Длина блока там нужна чтобы перепрыгивать "неизвестные" блоки.
Так код, читающий конфиг должен читать только то что понимает , а что не понимает — пропускать до следующего заголовка (тэга).
Т.е. старый код сможет прочитать "новый" конфиг и не упасть.
Отредактировано 13.09.2025 21:25 bnk . Предыдущая версия . Еще …
Отредактировано 13.09.2025 21:24 bnk . Предыдущая версия .
Отредактировано 13.09.2025 21:20 bnk . Предыдущая версия .
Отредактировано 13.09.2025 21:18 bnk . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.