Seite 1 von 1

aus einem QString ein einzelnes Zeichen auswerten

Verfasst: 17. Februar 2010 14:28
von Vadhagh
Hi,

gibt es eine möglichkeit aus einem QString ein einzelnes Zeichen abzufangen und aus zu werten?
Ich habe als Beispiel eine Buchstaben Zahlen kombination:

HRV315897758598 und will hier an das V rankommen bzw. immer dan das dritte Zeichen. Damit ich dann über eine If anwendung später eine Auswertung treffen kann.

Ich hab gelesen das man mit arg() die Zeichen und wörter zählen kann, kann man auch so an ein bestimmtes zeich ran kommen?

Bezihungsweise mit:
const QChar QString::at ( int position ) const

MfG
Maik

Verfasst: 17. Februar 2010 14:44
von MichaelS
Versuch macht kluch.

Verfasst: 17. Februar 2010 15:14
von Vadhagh
Habe versucht mich nach dem
QCharRef QString::operator[] ( int position )
model zu richten. Nur komme ich damit nicht weiter.
Die Anzeige bleibt leer. :shock:

Code: Alles auswählen

void Dialog::SetZeichNr(QString Id){

    ui->lineEdit_2->setText(Id);
    //int position = 3;
    //const QChar(AP) QString(Id).at(int position)const;

     if(Id[3] == QChar('V'))
        ui->label->setText("MSI");
     if(Id[3] == QChar('M'))
         ui->label->setText("ASUS");
     if(Id[3] == QChar('L'))
         ui->label->setText("LG");


}

Verfasst: 17. Februar 2010 15:21
von TSS
Mit welchem Index beginnen denn C++-Arrays? Du suchst nämlich an der falschen Stelle.

Verfasst: 17. Februar 2010 15:31
von Exasperation
Jap erstens: Der Index.. Und zweitens: Um dir ein wenig zu helfen, das hier ist imho etwas übersichtlicher... Ist vielleicht Geschmackssache...

Code: Alles auswählen

QChar my_char = Id[2]; // gezählt wird ab 0
	 switch( my_char )
	 {
	 case 'V':
		 ui->label->setText("MSI");
		 break;
	 case 'M':
		 ui->label->setText("ASUS");
		 break;
	 case 'L':
		 ui->label->setText("LG");
		 break;
	 default:
		 // ... irgendne Ausgabe à la "Hersteller-Bezeichner nicht gefunden" 
	 }

Verfasst: 17. Februar 2010 15:34
von Vadhagh
Danke für die Hilfe reichte die richtige stelle also 2 zu nehmen^^.


MfG,
Maik

Verfasst: 17. Februar 2010 18:40
von Herzogswalder
Ja sicher, aber das gehört zu den C++-Basics.