Anzeige:
Ergebnis 1 bis 3 von 3

Thema: QT -> file einlesen

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749

    QT -> file einlesen

    hallo
    ich versuche nun seitstunden nur den ascii text eines files einzulesen....

    geht dass denn nicht mit:

    Code:
    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?

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.05.2003
    Beiträge
    226
    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,
    Kirstin

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von Mat
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •