Seite 1 von 2

QString und %

Verfasst: 21. Juni 2007 11:01
von drue
Hallo Leute,

irgendwie klappt das mit dem QString und replace nicht wirklich bei mir. Ich möchte in einen String alle Leerzeichen durch %20 ersetzen.

Code: Alles auswählen

 QString query = "File not found - devision by zero";
 query.replace( " ", "%20");
 qDebug (query)
Da kommt dann ein wirrer String raus:
Fileot -0,000000ound%20- -1080779172ivison%20by 6,676583e-316ro

wie bekomm ich es hin das %20 als zu ersetzender String verwendet wird und nicht als Platzhalter?

CU drue

Verfasst: 21. Juni 2007 11:11
von macman
Funktioniert hier einwandfrei, alles andere hätte mich auch gewundert. Es heißt übrigens 'division' :-)

Verfasst: 21. Juni 2007 11:12
von @udisello
funzt bei mir auch...

Verfasst: 21. Juni 2007 11:21
von Volker
Hat Trolltech bei 4.3 was an qDebug geändert? Bisher musste ich zur Ausgabe eines QStrings mit qDebug immer noch ein qPrintable darum machen.

Verfasst: 21. Juni 2007 11:35
von @udisello
Ich mache es immer so ( ohne qPrintable ).

Code: Alles auswählen

qDebug() << myString;
Funktioniert schon seit 4.2.x, mit älteren Versionen hab ich leider noch nicht gearbeitet.

Verfasst: 21. Juni 2007 11:40
von Christian81
Ich glaube ihr solltet alle mal die Doku zu qDebug lesen...
void qDebug(const char *msg, ...)
If you pass the function a format string and a list of arguments,
it works in similar way to the C printf() function.
Warum es auch einfach per qDebug(QString("test")) funktioniert sehe ich gerade auch nicht - es gibt auchin 4.3 keinen operator oder überladene Funktion der dies erlauben würde...

Verfasst: 21. Juni 2007 11:56
von @udisello
Da ich die Doku gelesen habe, weiß ich, dass das funktioniert:

Code: Alles auswählen

qDebug() << myString;
If you include <QtDebug>, a more convenient syntax is also available:

qDebug() << "Brush:" << myQBrush << "Other value:" << i;
This syntax automatically puts a single space between each item, and outputs a newline at the end. It supports many C++ and Qt types.

Code: Alles auswählen

qDebug( QString( "test" ) );
funktioniert nicht, habe ich ja auch nicht behauptet...

Verfasst: 21. Juni 2007 11:58
von Christian81
@udisello: Dich abe ich nicht gemeint - wir haben nämlich fast gleichzeitig gepostet :)

Verfasst: 21. Juni 2007 12:02
von @udisello
und ich dacht schon... :D

Verfasst: 21. Juni 2007 12:39
von drue
Das beunruhigt mich wenn es bei euch geht. Ich hab das ganze mal auf einem anderem Rechner ausprobiert mit dem gleichen ergebnis :(

CU drue

Verfasst: 21. Juni 2007 12:42
von Christian81
@drue: Lies doch endlich mal was ich geschrieben habe... extra aus der Doku kopiert.

Verfasst: 21. Juni 2007 12:52
von macman
Volker hat geschrieben:Hat Trolltech bei 4.3 was an qDebug geändert?
Ähm, ich habe nur das replace(...) getestet. Debugausgabe habe ich per 'qDebug() << myString' gemacht. Reine Gewohnheit.

Verfasst: 21. Juni 2007 12:54
von Christian81
@macman: Deswegen funktioniert es bei Dir auch - aber das Thema mit printf() hatten wir ja vor kurzem schonmal... :)

http://qtforum.de/forum/viewtopic.php?t=4443

Verfasst: 21. Juni 2007 13:03
von drue
Sinn der übung war den string zur überprüfung auszugeben. Ich hab den mal in ein QLabel gejagt und da sieht das so aus wie es soll. Dann so.

CU Drue

Verfasst: 21. Juni 2007 13:11
von Christian81
Dabei hätte es eine einfache Lösung gegeben die, wenn man sie von alleine findet, auch noch einen Lerneffekt gehabt hätte. Vor allem nachdem ich den Link auf den anderen Artikel gepostet habe. Aber naja - will hier ja eh nur jeder was vorgekaut bekommen :?