Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Обработка XML _ createTextNode() и строка

Автор: spike_by 22.2.2010, 18:45

Уважаемые, вот кусо кода:

QDomElement file = newcurve.toDocument().createElement("file");
            file.setAttribute("num",QString::number(i+1));
            newcurve.appendChild(file);

.......................................................................

QDomElement cir = file.toDocument().createElement("Cir");
            cir.appendChild(cir.toDocument().createTextNode(QString::fromStdString(cur.inFile.at(i))));            
            file.appendChild(cir);            

qDebug()<<"cir.text() : "<<(cir.text())<<" cur.inFile.at(i): "<<QString::fromStdString(cur.inFile.at(i));

а вот, что получается:

cir.text() :  "power/10yq045/idvg-0.cis"  cur.inFile.at(i):  "power/10yq045/idvg-0.cir"


Почему так? Что с последним символом?

Автор: SABROG 23.2.2010, 0:36

Выкладывай проект целиком, чтобы его собрать можно было через qmake. Ничего подозрительного я не вижу кроме использования QString::fromStdString(). Для теста сделай второй список, но уже с типом QString вместо std::string.

Автор: Litkevich Yuriy 23.2.2010, 3:22

Цитата(spike_by @ 22.2.2010, 21:45) *
Почему так? Что с последним символом?
а что собственно не так?

Автор: spike_by 23.2.2010, 11:48

Цитата(SABROG @ 22.2.2010, 23:36) *
Выкладывай проект целиком, чтобы его собрать можно было через qmake. Ничего подозрительного я не вижу кроме использования QString::fromStdString(). Для теста сделай второй список, но уже с типом QString вместо std::string.

там все сложно - очень много сторонних библиотек и пр. Выложить не получится(, точнее собрать)
Я так подозреваю на проблемы с памятью, хотя причин не вижу. Ссылки и указатели в данном фрагменте не используются....

Автор: spike_by 23.2.2010, 13:41

Кстати, вот, что еще выводится в консоли при закрытии программы:

*** glibc detected *** ./SpiceParamExtractor: double free or corruption (out): 0x0817c020 ***


Автор: SABROG 23.2.2010, 13:45

Значит пришло время поработать с отладчиком и наверное с valgrind'ом.

Автор: spike_by 23.2.2010, 13:59

Цитата(SABROG @ 23.2.2010, 12:45) *
Значит пришло время поработать с отладчиком и наверное с valgrind'ом.

беда в том, что пока с ним не работал.

Кстати, из исходников собрал KDE 4.5 под Debian Etch, скомпилял исходники и там ничего такого плохого нету. Все работает, как я хочу и никаких "double free or corruption" нету.
Неужели дело в QT (OpenSuse 11.2 QT 4.5.3-2.4.2)...

Автор: Kagami 23.2.2010, 20:26

Цитата(spike_by @ 23.2.2010, 13:59) *
Кстати, из исходников собрал KDE 4.5 под Debian Etch...

о_О Это как? Во-первых KDE 4.5 еще нет.

Автор: trdm 24.2.2010, 8:49

Цитата(Kagami @ 23.2.2010, 20:26) *
Цитата(spike_by @ 23.2.2010, 13:59) *
Кстати, из исходников собрал KDE 4.5 под Debian Etch...

о_О Это как? Во-первых KDE 4.5 еще нет.

Привет из будущего? Ладно новости загодя готовят, но что-бы КДЕ пекли впрок О_о...

Автор: spike_by 24.2.2010, 11:31

Цитата(Kagami @ 23.2.2010, 19:26) *
Цитата(spike_by @ 23.2.2010, 13:59) *
Кстати, из исходников собрал KDE 4.5 под Debian Etch...

о_О Это как? Во-первых KDE 4.5 еще нет.

Блин, опечатался)
Конечно же Qt 4.5! KDE тут не при чем.

Автор: spike_by 24.2.2010, 13:01

Решено:

QDomElement cir = doc.createElement("Cir"); 
                         cir.appendChild(doc.createTextNode(QString::fromStdString(cur.inFile.at(i))));
file.appendChild(cir);

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)