Seite 1 von 1

[GELÖST] Nullauffüllung QString

Verfasst: 14. Dezember 2006 11:16
von CSchirner
Wie kann ich einen QString Null-Auffüllen?

z.b.

3 => 0003
124 = 0124

Vielen Dank schonmal im Vorraus.

Verfasst: 14. Dezember 2006 11:21
von Christian81
Entweder schon beim Konvertieren vom int QString::sprintf korrekt verwenden oder eben solange eine 0 vor anfügen bis dein String die gewünschte Länge hat.

Verfasst: 14. Dezember 2006 11:28
von CSchirner
So in der Art sollte doch das funktionieren....

muh2.append(QString::sprintf("%04d", 4));


Ich mein sprintf weiß ich wie man das Standard anwendet, in Kombination mit QString bin ich überfragt

Verfasst: 14. Dezember 2006 11:32
von Christian81
Ja, so sollte es funktionieren.
Allerdings habe ich gerade gesehen dass lieber QString::arg() benutzt werden sollte.

Verfasst: 14. Dezember 2006 12:16
von CSchirner
mit dem arg() ... da kann man den string irgendwie nicht modifizieren

Verfasst: 14. Dezember 2006 12:18
von Christian81
CSchirner hat geschrieben:mit dem arg() ... da kann man den string irgendwie nicht modifizieren
Mit deinen Antworten kann man irgendwie nichts anfangen - hast du ein Codebeispiel womit Du deine Aussage beweisen kannst? .arg() bringt eine Referenz auf einen neuen String zurück und modifziert nicht den alten!

Verfasst: 14. Dezember 2006 12:21
von CSchirner
ääh sorry.. hatte was wichtiges vergessen... mit arg lässt sich keine nullfüllung realisieren

muh2.append(QString("%1\n").arg((iCurrentPage*264)+(16*i), 4, 16).toUpper());

Verfasst: 14. Dezember 2006 12:26
von Christian81
Nunja, wenn man keinen Fillchar angibt kann es auch nichts werden.
http://doc.trolltech.com/4.2/qstring.html#arg-5

Verfasst: 14. Dezember 2006 14:13
von bierber
Also bei mir gehts mit diesem Befehl, so dass immer 3 Zahlen vorhanden sind und an den Anfang nullen angehängt werden.

Code: Alles auswählen

QString("%1").arg(m_nPos, 3, 10, QChar('0')) 
Vielleicht hilft es dir ja.

nPos ist die Zahl, 3 die Anzahl Zeichen, 10 die Basis und QChar('0') das Zeichen mit dem aufgefüllt werden soll.

Verfasst: 14. Dezember 2006 14:17
von CSchirner
Hatte es mittlerweile schon .. vielen Dank!