Wie zu verwenden QTextStream::readLine-Funktion?
Ich versuche zu Lesen Werte aus einer text-Datei mit dem Qt-code unten ein.
int ReadFromFile(QString fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return 1;
QTextStream in(&file);
while (!in.atEnd())
{
QString line = in.readLine(1); //read one line at a time
QStringList lstLine = line.split(",");
}
file.close();
return 0;
}
Den Inhalt der text-Datei ist wie folgt:
1,0.173648178
2,0.342020143
3,0.5
4,0.64278761
5,0.766044443
6,0.866025404
Jedoch readLine gibt immer ein Zeichen in einer Zeit, aber meine Absicht ist, zu Lesen eine Zeile zu einem Zeitpunkt und split jede Zeile, um die einzelnen Komma-getrennten Werten.
Übersehe ich etwas grundlegendes hier?
InformationsquelleAutor Martin | 2012-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. Sie sind vorbei 1 für die
maxlen
parameter, was bedeutet, begrenzen Sie die Zeilenlänge auf nur 1 Zeichen. Versuchen Sie es ohne Angabe alles, was fürmaxlen
.Hmm, ich kann nicht dupliziert werden. Mithilfe der Daten, die Sie geliefert, readLine() funktioniert gut für mich.
Das problem war, dass die Linien waren incorreclty, abgeschlossen durch "\r", werden die Zeilen nicht korrekt trailing end-of-line-Zeichen "\r\n"
InformationsquelleAutor kenrogers
entfernen, zero aus code und versuchen..
InformationsquelleAutor shofee
Ich wissen, dass dies eine alte post, aber es sieht aus wie Sie überschreiben Ihre lstLine variable während jeder iteration.
Diese:
Änderung
InformationsquelleAutor DevHelper