2011-03-26 68 views

Respuesta

70

Usar este código:

QFile inputFile(fileName); 
if (inputFile.open(QIODevice::ReadOnly)) 
{ 
    QTextStream in(&inputFile); 
    while (!in.atEnd()) 
    { 
     QString line = in.readLine(); 
     ... 
    } 
    inputFile.close(); 
} 
+1

no debería ser el modo '(QIODevice :: ReadOnly | QIODevice :: Text)'? –

+2

@AlexanderMalakhov QIODevice :: El texto es el predeterminado. – sashoalm

+0

@Sergio: solo por curiosidad, si el archivo de entrada contiene una secuencia separada por comas, entonces, cómo analizar el – Chinmoy

-2

Su e es el ejemplo de mi código. Así que voy a leer un texto de primera línea a tercera línea utilizando readLine() y luego almacenar a variable de matriz e imprimir en el campo de texto utilizando para bucle:

QFile file("file.txt"); 

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

    QTextStream in(&file); 
    QString line[3] = in.readLine(); 
    for(int i=0; i<3; i++) 
    { 
     ui->textEdit->append(line[i]); 
    } 
0
QFile inputFile(QString("/path/to/file")); 
inputFile.open(QIODevice::ReadOnly); 
if (!inputFile.isOpen()) 
    return; 

QTextStream stream(&inputFile); 
QString line = stream.readLine(); 
while (!line.isNull()) { 
    /* process information */ 

    line = stream.readLine(); 
}; 
+0

respuestas con solo fragmentos de código no son muy útiles. – Plog

0

Desde Qt 5.5 se puede utilizar QTextStream::readLineInto. Se comporta similar a std::getline y es tal vez más rápido a medida QTextStream::readLine, ya que reutiliza la cadena:

QIODevice* device; 
QTextStream in(&device); 

QString line; 
while (in.readLineInto(&line)) { 
    // ... 
} 
Cuestiones relacionadas