Seite 1 von 1

[gelöst] QStringList in Datei plotten

Verfasst: 25. Mai 2007 17:16
von 24dan
Hallo habe eine QStringList angelegt und sortiert mit qsort.
Wenn ich jetzt diese Liste ausgeben möchte bekomme ich immer nur den ersten char vom Pointer auf das Listenelement. Wie kann ich auf den gesamten Inhalt der einzelnen Listenelemente zugreifen?

Code: Alles auswählen

    QStringList list;
    list << "AlPha" << "beTA" << "gamma" << "DELTA";
    qSort(list.begin(), list.end(), caseInsensitiveLessThan);
	int ps;
	
    for (ps = 0; ps < list.size(); ++ps) {
	    outfile << *list.at(ps);
	}
    outfile << endl;

Ausgabe:
AbDg

Verfasst: 25. Mai 2007 17:20
von upsala
Was willst du mit dieser Konstruktion bezwecken:

Code: Alles auswählen

 *list.at(ps); 

Verfasst: 25. Mai 2007 17:41
von 24dan
Ich wollte eigentlich die Ausgabe:
AlPha beTA DELTA gamma
erhalten.

Und mit *list.at(ps) wollte ich de vier Strings auswerfen.

Bei mir gibt die fortgeschrittenere Variante:

Code: Alles auswählen

for(QStringList::Iterator it = list.begin();it!=list.end();++it) {
		outfile<<*it;
	}
Nur ne Fehlermeldung...

Verfasst: 25. Mai 2007 19:10
von Burgpflanze
Versuch mal nicht :

Code: Alles auswählen

*list.at( ps )
sondern:

Code: Alles auswählen

list.at( ps ).toLocal8Bit.constData()
(PS: Nicht getestet! :wink:)

Verfasst: 26. Mai 2007 16:41
von 24dan
...so jetzt habe ich den Fehler gefunden.


Also nochmals Danke an alle:

der Quelltext muss also so aussehen:

Code: Alles auswählen

    QStringList list;
    list << "AlPha" << "beTA" << "gamma" << "DELTA";
    qSort(list.begin(), list.end(), caseInsensitiveLessThan);
	int ps;
	
    QStringList::const_iterator it;
    for(it = list.begin();it!=list.end();++it) {
		outfile << (*it).toLocal8Bit().constData();
	}
Unterschied:

QStringList::const_iterator it;
und
outfile << (*it).toLocal8Bit().constData();