crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> QSettings и кирилица в INI-файле
Litkevich Yuriy
  опции профиля:
сообщение 30.1.2010, 14:08
Сообщение #11


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

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

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




Репутация:   94  


Цитата(BRE @ 30.1.2010, 16:03) *
Юра, а покажи как читаешь значения, точнее во что преобразуешь QVarian

QSettings m("./message.conf", QSettings::IniFormat, this);
...
QString v = m.value(s).toString(); // s - имя ключа
Т.к. надо было срочно сделать пришлось воспользоваться Qt 4.6 и после инициализации QSettings воткнул такую строчку:
m.setIniCodec(QTextCodec::codecForLocale());
Но позже надо будет сделать на Qt 4.4

Цитата(DIMEDROLL @ 30.1.2010, 16:03) *
да, я понял, а файлик почему не приатачил?
а какая от него польза?
вот так он выглядит:
Раскрывающийся текст
[word-0]
0    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N1"
1    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N2"
;2    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N3"
3    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N4"
4    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N5"
5    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N6"
6    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N7"
7    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N8"
8    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N9"
9    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N10"
10    =        "КЗ ЦЕПИ НМР1 И НМР4"
11    =        "КЗ ЦЕПИ SA1 И SA6"
;12    =        ""
;13    =        ""
;14    =        ""
15    =        "ПОHИЖЕHИЕ HАПРЯЖЕHИЯ ПИТАHИЯ 24 ВОЛЬТ"

[word-1]
0    =        "ПОТЕРЯНА СВЯЗЬ С ПЕНОГЕНЕРАТОРНОЙ"
1    =        "УСТАНОВЛЕННА СВЯЗЬ С ПЕНОГЕНЕРАТОРНОЙ"
;2    =        "СБРОС В ИСХОДНОЕ"
;3    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N4"
;4    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N5"
;5    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N6"
;6    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N7"
;7    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N8"
;8    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N9"
;9    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N10"
;10    =        "КЗ ЦЕПИ НМР1 И НМР4"
;11    =        "КЗ ЦЕПИ SA1 И SA6"
;12    =        ""
;13    =        ""
;14    =        ""
;15    =        "ПОHИЖЕHИЕ HАПРЯЖЕHИЯ ПИТАHИЯ 24 ВОЛЬТ"

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 30.1.2010, 15:16
Сообщение #12


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


ладно
я сам создал и без доп. телодвижений работает
QString::toLatin1()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.1.2010, 17:55
Сообщение #13


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

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

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




Репутация:   94  


Цитата(DIMEDROLL @ 30.1.2010, 18:16) *
без доп. телодвижений работает
QString::toLatin1()
действительно работает, хотя и непонятно как. LATIN-1 по определению не содержит кирилицы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 30.1.2010, 18:12
Сообщение #14


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 30.1.2010, 16:55) *
действительно работает, хотя и непонятно как. LATIN-1 по определению не содержит кирилицы.

достаточно того что LATIN-1 это 8-битовая кодировка, просто ты на нее смотришь через очки 1251 :-)
изменив локаль своей системы, вероятнее всего получишь кракозябры...
попробуй, отпишись что получилось
лучше всего в юникоде писать и читать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 5.2.2010, 16:13
Сообщение #15


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


Цитата(DIMEDROLL @ 30.1.2010, 17:12) *
изменив локаль своей системы, вероятнее всего получишь кракозябры...
попробуй, отпишись что получилось

up
ну как, пробовал менять локаль?
какие результаты? интересно же :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.2.2010, 16:34
Сообщение #16


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

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

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




Репутация:   94  


Цитата(DIMEDROLL @ 5.2.2010, 19:13) *
ну как, пробовал менять локаль?
нет, т.к. не вижу ничего хорошего в смене локали внутри приложения. По моему эта возможность в Qt реализована зря.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 6.2.2010, 10:06
Сообщение #17


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 5.2.2010, 15:34) *
Цитата(DIMEDROLL @ 5.2.2010, 19:13) *
ну как, пробовал менять локаль?
нет, т.к. не вижу ничего хорошего в смене локали внутри приложения. По моему эта возможность в Qt реализована зря.

Я не про это.
Я говорю про смену локализации в твоей ОС: Панель управления - Язык и региональные настройки - Дополнительно - Язык программ не поддерживающих Юникод
измени, например на англ. и проверишь как будет твоя прога работать на английской винде.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 8.2.2010, 7:58
Сообщение #18


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

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




Репутация:   12  


скорее всего не будет.
QT не юзаю, но тоже тут наелась как-то с этими ini-файлами.
стандартная кодировка в них - ascii, а смещение регулируется локалью. и вот читать их неудобно со всех сторон. так что лучше уж в UTF8 всё хранить, что я обычно и делаю. правда, под вендой стандартные средства типа блокнота всякую чушь иногда лепят в UTF8 и под линюксом надо учитывать, что в начале файла может быть BOM, причём ещё и двух видов, а может и не быть... но всё-таки в общем это лучше, чем ansi с непонятным трактованием.
кодировки - самый жуткий дурдом в программировании, имхо.

Сообщение отредактировал Iron Bug - 8.2.2010, 10:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 30.11.2024, 8:53