QSettings. Escape-последовательности в ini файлах |
Здравствуйте, гость ( Вход | Регистрация )
QSettings. Escape-последовательности в ini файлах |
Klabush |
14.1.2008, 13:38
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 10.10.2007 Пользователь №: 7 Спасибо сказали: 0 раз(а) Репутация: 0 |
Обычно из инишки данные читаются как-то так:
Но если значение какого-либо ключа в ini файле будет содержать бэкслеш (\), то он воспримется как escape-последовательность. То есть если у нас в инишке
то в программе мы получим значение Path
Как эту "фичу" обойти? Хотелось бы получить строку как она есть. |
|
|
archimed7592 |
14.1.2008, 13:45
Сообщение
#2
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Klabush |
14.1.2008, 14:01
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 10.10.2007 Пользователь №: 7 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
archimed7592 |
14.1.2008, 14:14
Сообщение
#4
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ну, не посвящённым в таинства С++ админам не составляет труда писать reg файлы(реестр), а так дело твоё - можешь выбрать ручной парсинг. Кстати, в случае xml-настроек тоже нужно "экранировать" некоторые символы. Да и вообще, ini устарел .
|
|
|
ViGOur |
14.1.2008, 14:18
Сообщение
#5
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Ну, не посвящённым в таинства С++ админам не составляет труда писать reg файлы(реестр), Угу, особенно под *nix! Неее, походу должно быть другое решение, просто как вариант можно использовать обратные слэши: Цитата [Common] Но те кто не посвящен в таинства могут по привычке вбить и обычные виндовые, а потом будут гадать или программера доставать: "почему не работает!".
Path=c:/test/77.txt Сообщение отредактировал ViGOur - 14.1.2008, 14:19 |
|
|
kuler |
10.11.2008, 11:24
Сообщение
#6
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
а у меня проблема наоборот, нужно сохранить ключ abc/def, а он делает ветку abc а в ней ключ def. Символ подавления \ не срабатывает
|
|
|
Litkevich Yuriy |
10.11.2008, 14:06
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
kuler, код приведи, как ты это делаешь
|
|
|
kuler |
10.11.2008, 14:15
Сообщение
#8
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
QSettings settings("Unit", "Subunit");
settings.setValue("af\/vb", "xxx"); хотел бы чтоб был ключ af/vb со значением xxx |
|
|
Litkevich Yuriy |
10.11.2008, 14:39
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
судя по примерам в описании класса QSettings, это возможно.
Ты какой формат используешь и на какой системе? ага, я кажется понял. слэш всяко будет суб ключи создавать, но ты можешь и обращатся в той же манере к ним как и записывал:
|
|
|
AD |
10.11.2008, 14:55
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Юра, поясни, пожалуйста, пример. То ли опечатка в примере, то ли я что-то не так понимаю? |
|
|
Текстовая версия | Сейчас: 23.11.2024, 7:24 |