sim3x: окей, но я ведь не зря привёл пример с двумя компонентами Меню и Список. В этом случае у нас получается последовательная запись
Меню: {ключ: значение}
Меню: {ключ: значение}
Список: {ключ: значение}
Список: {ключ: значение}
где следующий компонент того же типа перезаписывает настройки предыдущего.
sim3x: я так понимаю, речь о формате "ключ - значение". Как при этом избежать конфликтов между однотипными компонентами, требующими запись по одинаковым ключам?
Константин Степанов: я ведь объяснил, что мне не нужно выгружать сцены со всеми свойствами, мне нужен компактный файлик с описанием лишь некоторых значений.
Константин Степанов: кажется, мы говорим на разные темы. Само собой разумеется, что для того, чтобы сохранять и восстанавливать состояние GUI, нужно перед сохранением делать сериализацию ключевых значений состояния в файл/объект, который перед восстановлением будем парсить для перезаписи значений по умолчанию. Вопрос состоит в том, как организовать структуру такого файла, чтобы она была гибкой к изменениям GUI.
Пример: сделать хранилище "текстовый ключ - бинарное значение". Но в этом случае возникают две проблемы: возможный конфликт между различными компонентами и гарантированный конфликт при повторах компонентов одного типа.
Другой пример: сделать хранилище в виде древовидного документа. Но тогда возникает проблема собирать/передавать значения через промежуточные GUI-компоненты, которые не должны в этом участвовать.
Вероятно, решение состоит не в изменении структуры файла, а в проектировании GUI для взаимодействия компонентов между собой по определённой схеме.
sim3x: ну да, суть вопроса перефразировал верно)
Если что-то осталось непонятным, прошу переспросить. Проблема в том, что при написании софта нужно сохранять независимость компонентов друг от друга, чтобы их можно было использовать повторно и менять компоновку.
Так ведь задача - не выгрузка всех компонентов и их состояний, а лишь тех значений, которые выставляются опционально. Пример использования: ярлык на запуск программы с определённой конфигурацией, два ярлыка - два стартовых состояния.
Спасибо, это очень интересно. Но мне всё же хотелось получить полезную информацию об инструментах дезасембирования/инжектинга, полезные задачки crack me, специализированную литературу по теории. Пока что ваш ответ ни о чём.