Seite 1 von 1
Umwandlung von Text in Zahlen
Verfasst: 17. April 2006 19:23
von eule3
Hallo
Ein Problem mit der Umwandlung von QStrings in Zahlen.
Die Funktion t.toInt(&ok,10) liefert den
TEXT 0 wenn t gleich der Ziffer Null ist.
Und irgendwie finde ich das nicht ganz richtig.
Hier der ganze Quelltext.
Die Schleife zerteilt einen QString (eingabe)
in einen Textanteil und einen Zahlenanteil.
Code: Alles auswählen
do
{
// Schleife
pos ++;
t= eingabe.mid(pos,1).ascii();
if (t.toInt(&ok,10))
{//t ist eine Zahl
zahl.append(t);}
else
{//t ist ein Text
text.append(t); }
} while (!(pos==lang));
Vielen Dank im voraus
PS
Gibt es elegantere Methoden Text zu zerlegen?
Verfasst: 17. April 2006 23:12
von Marco812
Hallo,
z.B. so:
QString strZahl = "1";
// String -> Zahl
int intZahl = strZahl.toInt();
// Zahl -> String
strZahl = QString().setNum(intZahl);
Gruß
Marco812
Verfasst: 18. April 2006 00:51
von Nassian
Oder (Zahl -> QString)
So finde ich es halt schöner
SG Alexander
Verfasst: 18. April 2006 14:41
von eule3
Hallo und danke für die Antworten.
Das ist schon richtig, nur nuß ich ja vorher entscheiden
ob der QString überhaupt eine Zahl ist oder nicht.
Und hier liefert QString.toInt das falsche Ergebniss
wenn der QString 0 ist.
(Also die Ziffer Null, nicht NULL)
mfg
Verfasst: 18. April 2006 14:51
von macman
Das hat schon alles seine Richtigkeit, der Fehler ist in deinem Code. Ob eine Konvertierung erfolgreich war, steht im ersten Parameter und nicht im Rückgabewert.
Verfasst: 19. April 2006 19:31
von eule3
Hallo
Danke macman, was wäre ich ohne Dich.
Jetzt funktioniert es wie es soll.
Eigentlich wollte ich die Funktion isNumeric() von
QChar benutzen, aber ich habe nicht herausbekommen
wie man einen QString (der nur ein zeichen groß ist)
in ein QChar umwandelt. (und umgekehrt)
mfg
Verfasst: 19. April 2006 22:56
von Shadow
eule3 hat geschrieben:Hallo
Danke macman, was wäre ich ohne Dich.
Jetzt funktioniert es wie es soll.
Eigentlich wollte ich die Funktion isNumeric() von
QChar benutzen, aber ich habe nicht herausbekommen
wie man einen QString (der nur ein zeichen groß ist)
in ein QChar umwandelt. (und umgekehrt)
mfg
Alles zu unelegant.
Wie wäre es mit der Funktion "bool QString::contains ( const QRegExp & rx ) const" + der Regular Expression [0-9] bei der Abfrage? Da gehst du auf jeden Fall 100%ig sicher, das dein String wirklich eine reine Zahl ist.
Verfasst: 20. April 2006 07:15
von macman
eule3 hat geschrieben:aber ich habe nicht herausbekommen
wie man einen QString (der nur ein zeichen groß ist)
in ein QChar umwandelt.
Ist die Doku wirklich so schwer zu lesen? Guck dir die Rückgabewerte der einzelnen Funktionen an und dann hast Du es doch.
const QChar at ( int i ) const
QChar * data ()
Verfasst: 20. April 2006 07:18
von macman
Shadow hat geschrieben:Wie wäre es mit der Funktion "bool QString::contains ( const QRegExp & rx ) const" + der Regular Expression [0-9] bei der Abfrage?
Ich bin sicher es findet auch noch eine Möglichkeit, bei der man später gar nicht mehr versteht was man da gemacht hat
