Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
1

QSettings и ковычки

28.11.2013, 16:45. Показов 3217. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть файл с конфигурацией приложения, в нем хранятся значения переменных в виде:
XXX="YYY"
если я меняю значение ХХХ на ZZZ, то все хорошо. Но если мне нужно ввести новую переменную (не использованную до этого) и сохранить её значение в файл, то получаю:
ААА=BBB
без ковычек. А они нужны. Как это исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2013, 16:45
Ответы с готовыми решениями:

Ковычки
Здравствуйте, уже битый час ломаю голову не могу в echo, поставить событие onclick с функцией,...

Поставить ковычки
вот часть кода в цикле, $divd увеличивается с каждым разом чтобы Id не повторялось, и все бы...

Убрать ковычки
Здраствуйте Нужно из запроса убрать все одинарные и 2е ковычки. Одинарные получилось вот так $id...

Ftsearch и ковычки
Как сделать, чтобы при точном поиске с FTSearch db.FTSearch(formula$,0) находились документы,...

16
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
28.11.2013, 16:51 2
Кто сказал что они нужны?
Экранируйте их
\"
0
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
28.11.2013, 16:56  [ТС] 3
Они нужны для работы другого приложения, оно без них может неправильно считать значение
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Экранируйте их
\"
Пробовал, не вышло получается
AAA="\"BBB"\"
так же пробовал заменить HTML кодом ковычек, но не вышло.
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
28.11.2013, 17:10 4
Тут проблема в том, что для ini файла кавычки не нужны, по этому Qt их и не ставит.
Но тут другая проблема, если вы даже их туда запихнете, то QSettings тогда не сможет нормально работать, так как будет выдавать результаты без кавычек, перезаписывая исходный файл, опять же без кавычек.

То есть добавьте строку вида:
test="123"
в ваш файл и прочтите ее значение через QSettings. Ответ будет 123, без кавычек и файл перезапишется.

В данном случае проще самому написать парсер и генератор ini(точнее уже не ini), у него простая структура, проблем быть не должно.
0
16 / 16 / 1
Регистрация: 21.05.2012
Сообщений: 83
28.11.2013, 17:13 5
Вы, походу, плохо Escape последовательности учили.... кавычка в ней пишется так " \" " .... т.е. если нам нужно записать ВВВ в ковычках, то это будет выглядеть следующим образом - " \" ВВВ \" "
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
28.11.2013, 17:15 6
Пробелы ничего не решают, как бы.
test=" \" BBB \" "
В Qt экранирование сделано через \, никакие пробелы не нужны.
0
16 / 16 / 1
Регистрация: 21.05.2012
Сообщений: 83
28.11.2013, 17:18 7
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Пробелы ничего не решают, как бы.

В Qt экранирование сделано через \, никакие пробелы не нужны.
тут пробелы выступают в роли небольшого отступа для наглядности, не более того
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
28.11.2013, 17:19 8
Ах да, ТС не верно написал экранирование. Но это все равно не поможет...
0
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
28.11.2013, 17:30  [ТС] 9
у меня значение переменной берется из QLineEdit в окне, т.е.
C++ (Qt)
1
2
value = "\"" + Ui->obfuscatorFrontendPathLineEdit->text()+ "\"";
configs.setValue("Settings/BBB",value);
0
16 / 16 / 1
Регистрация: 21.05.2012
Сообщений: 83
28.11.2013, 17:46 10
Цитата Сообщение от Акыл Посмотреть сообщение
у меня значение переменной берется из QLineEdit в окне, т.е.
C++ (Qt)
1
2
value = "\"" + Ui->obfuscatorFrontendPathLineEdit->text()+ "\"";
configs.setValue("Settings/BBB",value);
а может проще возвращать значение и потом его в кавычки заключать?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <QApplication>
#include <QWidget>
#include <QtWidgets>
#include <QMessageBox>
 
int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        QLineEdit line1;
 
        QString ttt = "text";
        ttt = "\"" + ttt + "\"";
 
        line1.setText(ttt);
        line1.show();
        return app.exec();
}
0
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
28.11.2013, 17:49  [ТС] 11
Цитата Сообщение от FoxArGon Посмотреть сообщение
а может проще возвращать значение и потом его в кавычки заключать?
Я не понял, значение LineEdit заполняется пользователем, я его считываю и записываю в файл. И значение должно быть в ковычках, а в LineEdit без.
0
16 / 16 / 1
Регистрация: 21.05.2012
Сообщений: 83
28.11.2013, 18:01 12
ну... не знаю как запись в файл, но из реестра все нормально и записывается и считывается
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <QApplication>
#include <QWidget>
#include <QtWidgets>
#include <QMessageBox>
 
int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        QLineEdit line1;
 
        QSettings qwe("My", "test");
        qwe.beginGroup("values");
 
        QString ttt = "text";
        ttt = "\"" + ttt + "\"";
 
        qwe.setValue("first", ttt);
        qwe.endGroup();
 
        QSettings qwe1("My", "test");
        qwe1.beginGroup("values");
 
        QString qqq = qwe1.value("first").toString();
 
        qwe1.endGroup();
 
        line1.setText(qqq);
        line1.show();
        return app.exec();
}
0
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
28.11.2013, 18:16  [ТС] 13
в реестр записывается в ковычках?

Добавлено через 5 минут
C++ (Qt)
1
2
value = "\"" + Ui->AAATextBrowser->toPlainText() + "\"";
configs.setValue("Settings/AAA", value);
Получаю в файле:
AAAA=\"qwerqwerqwer\"
0
16 / 16 / 1
Регистрация: 21.05.2012
Сообщений: 83
29.11.2013, 09:12 14
Цитата Сообщение от Акыл Посмотреть сообщение
в реестр записывается в ковычках?
Да, в реестр записывается в ковычках...
0
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
29.11.2013, 15:09  [ТС] 15
А ковычек, нет.
0
16 / 16 / 1
Регистрация: 21.05.2012
Сообщений: 83
29.11.2013, 15:32 16
попробуй использовать символ из ASCII
C++ (Qt)
1
2
 QString ttt;
ttt.append(QChar(034));
0
6 / 6 / 6
Регистрация: 22.03.2012
Сообщений: 128
29.11.2013, 23:15  [ТС] 17
пробовал(
0
29.11.2013, 23:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2013, 23:15
Помогаю со студенческими работами здесь

QSettings и QMdiArea
Здравствуй, форум! Программа крашится (без ошибки), когда пытаюсь восстановить геометрию...

Ковычки в поле формы
Подскажите пожалуйста ,как сделать в поле формы что бы кавычки в ней были уже в момент ввода...

взять ковычку в ковычки
задача, написать программу для разделения текста на лексемы, которая также должна выдавать ошибку...

QSettings убрать сортировку
Доброго времени суток всем. У меня такая вот проблема, может кто ее уже и решил, но я что-то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru