Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Aline_u
12 / 12 / 2
Регистрация: 15.04.2013
Сообщений: 219
#1

Почему не работает QString::toUInt?

13.09.2013, 10:59. Просмотров 374. Ответов 0
Метки нет (Все метки)

Не могу понять в чём дело: при попытке из строки получить число, постоянно возвращается флаг false и значение 0, т.е. ошибека в конвертации происходит. Мне из файла xml надо получить данные. Файл такой структуры:
XML
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
<?xml version="1.0"?>
<Chapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ShemaMain.xsd">   
    <Receiver>
        <PortRec>25570</PortRec>
        <HostRec></HostRec>
        <CommandsRec>
            <rec>0x12345678</rec>
            <answ>0x12345678</answ>
        </CommandsRec>
    </Receiver>
    <Transmiter>
        <PortTr>25570</PortTr>
        <HostTr></HostTr>
        <Loop>0</Loop>
        <CommandsTr>
            <trans>0x11111111</trans>
            <pause>200</pause>
        </CommandsTr>
        <CommandsTr>
            <trans>0x22222222</trans>
            <pause>500</pause>
        </CommandsTr>
        <CommandsTr>
            <trans>0x33333333</trans>
            <pause>200</pause>
        </CommandsTr>
    </Transmiter>
</Chapter>
Например, получаю номер порта:

C++ (Qt)
1
2
3
4
5
6
    uint rec_port; 
 
          if (xml->name() == "PortRec") {
            str = xml->readElementText(QXmlStreamReader::ErrorOnUnexpectedElement);
            rec_port = str.toUInt(&ok,10);
          }
В переменную str всё правильно записывается (смотрю в отладчике), а вот в переменную rec_port записывается 0 и ok = false, почему так?
Тоже самое со следующими полями:

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
 QString str, str1, str2;
    uint rec;
    uint answ;
    bool ok = false;
 
    while (!(xml->tokenType() == QXmlStreamReader::EndElement && xml->name() == "CommandsRec"))
    {
          str = xml->name().toString();
 
          if (xml->tokenType() == QXmlStreamReader::StartElement){
 
              if (xml->name() == "rec") {
                str1 = xml->readElementText(QXmlStreamReader::ErrorOnUnexpectedElement);
                rec = str1.toUInt(&ok,16);
              }
              if (xml->name() == "answ") {
                str2 = xml->readElementText(QXmlStreamReader::ErrorOnUnexpectedElement);
                answ = str2.toUInt(&ok,16);
              }
 
          }
 
          xml->readNext();
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 10:59
Ответы с готовыми решениями:

QFile::rename(QString name1, QString name2) не работает под Win
Добрый день! Столкнулся с проблемой: QFile::rename(QString name1, QString...

Как разбить QString строку на подстроки, т.е. на qlist <qstring> ?
Как разбить QString строку: &quot;/michaeltosell&quot;, &quot;/vorago&quot;, &quot;/yanochka147&quot;,...

QString в QHostAddress работает по-разному?
Здравствуйте! Помогите понять в чем причина непонятного поведения метода...

Не работает qstring.replace с переносом
есть стринг с текстом типа аллалала4 лалалала5 лалалала6 лалпллп6 если...

QList <QPair <QString, QString> > - сортировка пузырьком
Возможно ли? =) Есть список городов с их идентификационным номером, например:...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 10:59

Cтрока: Как сконвертировать QString в const QString?
Доброго времени суток. Как сконвертировать QString в const QString

Поиск в QMap<QString, QString> по регекспу
Есть QMap&lt;QString, QString&gt;. Есть некоторое регулярное выражение, по которому...

'QList<QListWidgetItem*>' в 'QList<QPair<QString, QString> >*'
Перевести 'QList&lt;QListWidgetItem*&gt;' в 'QList&lt;QPair&lt;QString, QString&gt; &gt;*' ?????


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru