QString und %

Alles rund um die Programmierung mit Qt
drue
Beiträge: 7
Registriert: 11. Juni 2007 20:44

QString und %

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Funktioniert hier einwandfrei, alles andere hätte mich auch gewundert. Es heißt übrigens 'division' :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag von @udisello »

funzt bei mir auch...
MfG @udisello

Qt Version 4.3.0, MS VS 2005
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag 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.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag 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.
MfG @udisello

Qt Version 4.3.0, MS VS 2005
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag 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...
MfG @udisello

Qt Version 4.3.0, MS VS 2005
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

@udisello: Dich abe ich nicht gemeint - wir haben nämlich fast gleichzeitig gepostet :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag von @udisello »

und ich dacht schon... :D
MfG @udisello

Qt Version 4.3.0, MS VS 2005
drue
Beiträge: 7
Registriert: 11. Juni 2007 20:44

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

@drue: Lies doch endlich mal was ich geschrieben habe... extra aus der Doku kopiert.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
drue
Beiträge: 7
Registriert: 11. Juni 2007 20:44

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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 :?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten