crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как сохранить комментарии в INI-файле?
hkarel
  опции профиля:
сообщение 16.6.2010, 14:53
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


В Qt есть класс QSettings, который работает с INI-форматом, и все в нем хорошо, вот только комментарии при работе с INI-файлом удаляются.
Возможно ли сделать так чтобы комментарии сохранялись в INI-файле?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.6.2010, 14:58
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(hkarel @ 16.6.2010, 18:53) *
Возможно ли сделать так чтобы комментарии сохранялись в INI-файле?
нет, нужно искать стороннюю библиотеку для работы с подобным форматом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 16.6.2010, 20:22
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


INI же обычный текстовый файл, просто структурированный. Не понял что за комментарии?
По-моему самому можно быстро написать сохранение в подобный файл..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
alex977
  опции профиля:
сообщение 16.6.2010, 21:36
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 310
Регистрация: 19.6.2008
Из: Россия, МО, г.Мытищи
Пользователь №: 206

Спасибо сказали: 77 раз(а)




Репутация:   8  


Цитата(kibsoft @ 16.6.2010, 21:22) *
INI же обычный текстовый файл, просто структурированный. Не понял что за комментарии?


Что-то вроде этого (комментарии выделены полужирным):

Цитата
[LastLookup]
String=a

[Exercises]
;Lang1=1
Lang1=x
;Lang1=2
;Lang2=1

Lang2=x
;Lang2=2

[picLookUp]
;Type=1
Type=2
;Type=3

[Font]
Size=-240


Сообщение отредактировал alex977 - 16.6.2010, 21:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.6.2010, 6:29
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


решётка (#) тоже воспринимается как комментарий. Но при записи в ini-файл ещё и другие номера случаются. Как-то раз я обозвал группу:
"Qt API", дак при записи, вместо пробела было воткнуто "%20", почему так, я не понял.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hkarel
  опции профиля:
сообщение 17.6.2010, 10:05
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 16.6.2010, 15:58) *
нет, нужно искать стороннюю библиотеку для работы с подобным форматом.

В сторонней наверняка не будет того, что есть в QSettings

Цитата(kibsoft @ 16.6.2010, 21:22) *
INI же обычный текстовый файл, просто структурированный. Не понял что за комментарии?
По-моему самому можно быстро написать сохранение в подобный файл..

Не совсем обычный текстовый файл, QSettings позволяет сохранять бинарные последовательности и пользовательские типы, т.е. аля сериализация, велосипедить такое самостоятельно совсем не хочется.

Цитата(Litkevich Yuriy @ 17.6.2010, 7:29) *
... Как-то раз я обозвал группу:
"Qt API", дак при записи, вместо пробела было воткнуто "%20", почему так, я не понял.

Мне всегда казалось, что дефакто, пробелы в именах групп недопустимы :)
Возможно QSettings обрабатывает наименования аналогично с url (QUrl::toPercentEncoding) или это как то связано с дефолтным QTextCodec используемым в QSettings.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 17.6.2010, 10:43
Сообщение #7


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


про пробелы в именах есть еще обсуждение тут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hkarel
  опции профиля:
сообщение 17.6.2010, 10:59
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(molchanoviv @ 17.6.2010, 11:43) *
про пробелы в именах есть еще обсуждение тут


Из "той" темы

Цитата
... Расковырял их исходники и понял, что нет, нельзя. Мало того, они и русские буквы в названиях секций и параметров превращают в чёрти что ...

Записывать "по русски" названия секция и параметров потребности не было, а вот значения по русски хранить была нужда. Решил проблему так:
class QSettingsM : public QSettings 
{
public:
    QSettingsM(const QString &fileName, Format format, QObject* parent = 0)
        : QSettings(fileName, format, parent)
    {
        QTextCodec *codec = QTextCodec::codecForName(/*"KOI8-R"*/ "UTF-8");
        setIniCodec(codec);
    }
};

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.7.2020, 0:09