¿Cómo puedo leer un archivo de texto línea por línea en Qt?Leer un archivo de texto línea por línea en Qt
Busco el Qt equivalente a:
std::ifstream infile;
std::string line;
while (std::getline(infile, line))
{
...
}
¿Cómo puedo leer un archivo de texto línea por línea en Qt?Leer un archivo de texto línea por línea en Qt
Busco el Qt equivalente a:
std::ifstream infile;
std::string line;
while (std::getline(infile, line))
{
...
}
Usar este código:
QFile inputFile(fileName);
if (inputFile.open(QIODevice::ReadOnly))
{
QTextStream in(&inputFile);
while (!in.atEnd())
{
QString line = in.readLine();
...
}
inputFile.close();
}
Usted podría utilizar QFile :: readAll(), consulte http://doc.qt.io/qt-5/qiodevice.html#readAll
Y a continuación, utilizar el constructor que toma un QString QByteArray, ver http://doc.qt.io/qt-5/qstring.html#QString-9
ya estoy usando la QTextStream con ReadAll pero no funciona. –
¿Qué pasa si el archivo es enorme? – Benp44
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]);
}
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();
};
respuestas con solo fragmentos de código no son muy útiles. – Plog
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)) {
// ...
}
no debería ser el modo '(QIODevice :: ReadOnly | QIODevice :: Text)'? –
@AlexanderMalakhov QIODevice :: El texto es el predeterminado. – sashoalm
@Sergio: solo por curiosidad, si el archivo de entrada contiene una secuencia separada por comas, entonces, cómo analizar el – Chinmoy