2011-03-26 23 views

cevap

70

kullanın bu kod:

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

, kip olmamalıdır (QIODevice :: ReadOnly | QIODevice :: Text) '? –

+2

@AlexanderMalakhov QIODevice :: Metin varsayılan değerdir. – sashoalm

+0

@Sergio: Sadece merak için, giriş dosyası virgülle ayrılmış bir dize içeriyorsa, – Chinmoy

-2

Onun e kodumdaki örnek. Bu yüzden taleb() kullanarak 3. hattına 1 çizgisinden bir metni okuyacak ve sonra dizi değişkene depolamak ve For döngüsü kullanılarak metin alanına yazdırmak:

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

cevapları çok yararlı değildir. – Plog

0

Qt 5.5 beri QTextStream::readLineInto kullanabilirsiniz. Bu std::getline benzer davranır ve onu dize yeniden kullanır, çünkü belki daha hızlı QTextStream::readLine gibidir:

QIODevice* device; 
QTextStream in(&device); 

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