PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : QT -> file einlesen



Mat
30-09-2005, 21:17
hallo
ich versuche nun seitstunden nur den ascii text eines files einzulesen....

geht dass denn nicht mit:



QFile file("pfad");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;

while (!file.atEnd()) {
QByteArray line = in.readLine();
process_line(line);
}


was für header muss ich den angeben?

Kirsche
01-10-2005, 11:07
Hallo Mat,

versuch es mal mit QDataStream oder QTextStream:

Hier ein Beispiel aus dem Manual:

QFile file( "file.dat" );
file.open( IO_ReadOnly );
QDataStream stream( &file ); // read the data serialized from the file
QString str;
Q_INT32 a;
stream >> str >> a;

Mit QTextStream geht es genauso (also statt QDataStream QTextStream einsetzen). QDataStream kannst du benutzen, wenn du z.B. binäre Daten einlesen möchtest. In deinem Fall ist vermutlich QTextStream geeigneter.
Für das zeilenweise Einlesen kannst du Folgendes benutzen:

QString text;

while ( !stream.atEnd() )
{
text = stream.readLine();
// irgendwas mit text machen
}

Schöne Grüße,

anda_skoa
01-10-2005, 15:49
hallo
was für header muss ich den angeben?
Mindestens <QFile> und <QByteArray>

Aber der von Kirsche vorgeschlagene Weg mit QTextStream hat den Vorteil, daß man direkt QString als Typ der Zeilen bekommt.

Ciao,
_