Qt 将文本文件读入QStringList
我有一个文本文件。我需要把它读给一个英语老师听。没有行分隔符。我的意思是文本文件中的每一行都在一个新行中。那么,我还能做什么呢?我假设列表中的每一行都应该是一个单独的字符串。在循环中使用,并在每个步骤上将返回值附加到QStringList。像这样:Qt 将文本文件读入QStringList,qt,file,Qt,File,我有一个文本文件。我需要把它读给一个英语老师听。没有行分隔符。我的意思是文本文件中的每一行都在一个新行中。那么,我还能做什么呢?我假设列表中的每一行都应该是一个单独的字符串。在循环中使用,并在每个步骤上将返回值附加到QStringList。像这样: QStringList stringList; QFile textFile; //... (open the file for reading, etc.) QTextStream textStream(&textFile); while
QStringList stringList;
QFile textFile;
//... (open the file for reading, etc.)
QTextStream textStream(&textFile);
while (true)
{
QString line = textStream.readLine();
if (line.isNull())
break;
else
stringList.append(line);
}
如果文件不太大,请将整个内容读入
QString
,然后读入QStringList
我喜欢使用QRegExp版本来处理来自不同平台的换行:
QStringList sList = s.split(QRegExp("(\\r\\n)|(\\n\\r)|\\r|\\n"), QString::SkipEmptyParts);
下面的代码读取该文件
QFile File("/file_path");
if(!File.open(QIODevice::ReadOnly));
{
qDebug("Error");
}
QTextStream in(&File);
while(!in.atEnd())
{
qDebug()<<ReadAll;
ReadAll=in.readAll();
}
File.close();
我喜欢我的代码完全缩进/缩进,并带有明显的变量名(它们可能需要更长的时间来键入,但更容易调试),因此我会执行以下操作(但将“myTextFile”和“myStringList”更改为更合理的名称,如“employeeListTextFile”)
在这种情况下,换行符“\n”是行分隔符。
QFile File("/file_path");
if(!File.open(QIODevice::ReadOnly));
{
qDebug("Error");
}
QTextStream in(&File);
while(!in.atEnd())
{
qDebug()<<ReadAll;
ReadAll=in.readAll();
}
File.close();
List= ReadAll.split(QRegExp("[\r\n]"),QString::SkipEmptyParts);
QFile myTextFile;
QStringList myStringList;
if (!myTextFile.open(QIODevice::ReadOnly))
{
QMessageBox::information(0, "Error opening file", myTextFile.errorString());
}
else
{
while(!myTextFile.atEnd())
{
myStringList.append(myTextFile.readLine());
}
myTextFile.close();
}