Bir metin dosyası satırını Qt satırında nasıl okuyabilirim?Qt içinde bir metin dosyası satırına bakın Qt
Ben Qt eşdeğer arıyorum:
std::ifstream infile;
std::string line;
while (std::getline(infile, line))
{
...
}
Bir metin dosyası satırını Qt satırında nasıl okuyabilirim?Qt içinde bir metin dosyası satırına bakın Qt
Ben Qt eşdeğer arıyorum:
std::ifstream infile;
std::string line;
while (std::getline(infile, line))
{
...
}
kullanın bu kod:
QFile inputFile(fileName);
if (inputFile.open(QIODevice::ReadOnly))
{
QTextStream in(&inputFile);
while (!in.atEnd())
{
QString line = in.readLine();
...
}
inputFile.close();
}
Sen QFile :: readAll() kullanabilir, http://doc.qt.io/qt-5/qiodevice.html#readAll
bkz Sonra bir QByteArray alır QString yapıcı kullanın http://doc.qt.io/qt-5/qstring.html#QString-9 bakınız
Zaten ReadAll ile QTextStream kullanıyorum ama çalışmıyor. –
Dosya büyükse ne olur? – Benp44
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]);
}
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();
};
cevapları çok yararlı değildir. – Plog
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)) {
// ...
}
, kip olmamalıdır (QIODevice :: ReadOnly | QIODevice :: Text) '? –
@AlexanderMalakhov QIODevice :: Metin varsayılan değerdir. – sashoalm
@Sergio: Sadece merak için, giriş dosyası virgülle ayrılmış bir dize içeriyorsa, – Chinmoy