Russian Qt Forum

Qt => Общие вопросы => Тема начата: sergek от Август 09, 2013, 20:29



Название: [РЕШЕНО] QSettings не читает первую секцию
Отправлено: sergek от Август 09, 2013, 20:29
Коллеги, никто не сталкивался с тем, что при использовании QSettings для хранения параметров в файле (QSettings::IniFormat) параметры первой секции иногда не читаются? Я сталкивался с этим и в Windows и в Linux.
Лечится вставкой пустой строки в начало ini файла, но вся беда в том, что при записи параметров эта строка удаляется.
Есть такая проблема?


Название: Re: QSettings не читает первую секцию
Отправлено: _OLEGator_ от Август 09, 2013, 20:58
Имя первой секции случайно не Global?


Название: Re: QSettings не читает первую секцию
Отправлено: sergek от Август 10, 2013, 08:21
Имя первой секции случайно не Global?
WebService. А что не так с Global?


Название: Re: QSettings не читает первую секцию
Отправлено: _OLEGator_ от Август 10, 2013, 11:28
Была у меня проблема с ним, помоему не видел эту группу.


Название: Re: QSettings не читает первую секцию
Отправлено: sergek от Август 28, 2013, 14:25
Проблема остается, пользователи жалуются... Может есть мысли?


Название: Re: QSettings не читает первую секцию
Отправлено: LisandreL от Август 29, 2013, 11:36
Бинарно файл посмотрите. Может там BOM (http://ru.wikipedia.org/wiki/Byte_order_mark) вначале.


Название: Re: QSettings не читает первую секцию
Отправлено: sergek от Август 29, 2013, 13:20
Бинарно файл посмотрите. Может там BOM (http://ru.wikipedia.org/wiki/Byte_order_mark) вначале.
Спасибо! Это мысль  :) Есть. И что теперь? QSettings его не любит?
----
Действительно, если убрать BOM, то проблема, вроде бы, исчезает. Кто бы еще объяснил, почему?
Но тему закрываю, еще раз спасибо!


Название: Re: QSettings не читает первую секцию
Отправлено: LisandreL от Август 29, 2013, 21:05
Действительно, если убрать BOM, то проблема, вроде бы, исчезает. Кто бы еще объяснил, почему?
Но тему закрываю, еще раз спасибо!
Ну, очевидно, QSettings о BOM просто ничего не знает.
Поэтому читая первую строку кроме нужного вам заголовка видит ещё и символы перед ним, поэтому название раздела выходит не таким, каким вы его ожидаете найти.

P.S. А, нет парсер к этому не готов и название первой секции просто теряется.
Баг известный (https://bugreports.qt-project.org/browse/QTBUG-23381). Чинить не спешат.


Название: Re: QSettings не читает первую секцию
Отправлено: sergek от Август 30, 2013, 10:52
P.S. А, нет парсер к этому не готов и название первой секции просто теряется.
Кажется, это объясняет, почему вместо "WebService" имя первой секций вдруг становится "General"... После первого же цикла перезаписи параметров.


Название: Re: [РЕШЕНО] QSettings не читает первую секцию
Отправлено: Bepec от Август 30, 2013, 12:06
Вопрос - почему это вы считаете багом?

QSettings работает без BOM. BOM может появиться если вы его отредактируете в редакторе и сохраните как UTF8-bom. И это уже ваши проблемы - пользуйтесь не портящими кодировки и файлы редакторами.

PS очень похоже на претензию - я в редакторе файл отредактировал, сохранил. Открываю редактором - вижу буковки. А в программе кракозябры. Несчастная программа честно пыталась прожевать ascii вместо utf8...


Название: Re: [РЕШЕНО] QSettings не читает первую секцию
Отправлено: sergek от Август 30, 2013, 14:57
Вопрос - почему это вы считаете багом?
Все просто, баг - это недокументированная фича.


Название: Re: [РЕШЕНО] QSettings не читает первую секцию
Отправлено: Bepec от Август 30, 2013, 15:03
По-моему сарказм тут не уместен.
Вы портите файл и заявляете что это баг. Ну блин. Купите машину, поставьте мотор от мопеда и скажите - это баг :D