Как стать автором
Обновить

Комментарии 8

Каша из топора какая-то. Возьмем «готовое» нерабочее решение, обложим его толстым слоем костылей и получим рабочий (с нюансами) и не очень удобный в пользовании продукт с черным ящиком внутри.
Похоже на тот самый случай, когда надо было делать велосипед, тем более что обертка над ini-файлом пишется за пару часов с перекурами и пару дней на тесты и отладку.
НЛО прилетело и опубликовало эту надпись здесь
По условию данные нужно было хранить в файле, чтобы «вне стен» программы любой пользователь (в основном, not advanced user) мог их просмотреть в блокноте. Касательно реестра, это удобно, если нужно хранить надстройки приложения.
Основная задача была направлена на: минимальное использование готового функционала, корректное отображение названий групп и параметров (ключей) на кириллице (руссификация) и кастомизацию вида, как будут хранится записи, если не устроит формат «Параметр=Значение».
Не согласен, что получился «толстый слой костылей». Были написаны только функции чтения и записи. Но соглашусь, что, возможно, стоило написать велосипед (в заключении про это абзац).
В моих проектах на Qt постепенно заменяю QSettings или на json если требуется человекочитаемость, или на QVariantMap, слитый в бинарный файл. Столкнулся с тем, что простые QSettings на пару десятков ключей могут сохраняться на диск около секунды. Обе альтернативы быстрее в чтении/записи и гибче по структуре так как нормально умеют в глубокую вложенность.
Json человекочитаем для разработчиков. Люди, которые впервые столкнуться с таким видом записи, будут в лучшем случае смущены и попробуют в этом разобраться. Но это не точно.
В будущем, пожалуй, стоит перейти на QVariantMap и текстовый файл.
QVariantMap и текстовый файл придется ручками писать сериализацию, получится тот же json по сути. Ну или yaml, только его Qt из коробки не умеет емнип

Вы забыли самое главное — указать кодировку файла в этом файле.
В Windows, как известно, их используется примерно 3.5 (866, 1251, UTF-16, UTF-8 (иногда)).
А вот фирма 1С поступила изящно в своем формате обмена с банк-клиентами:


Кодировка=Windows

(или DOS, по вкусу)

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории