【发布时间】:2020-06-06 15:09:53
【问题描述】:
我想读取列表小部件中文本文件的特定部分。我尝试了不同的方法并在网上寻找一些解决方案,但我找不到太多。我是使用 Qt 的新手,但在大多数情况下都相处得很好。
QFile YearInfo("C:/Users/Documents/info.txt");
YearInfo.open(QIODevice::ReadWrite | QIODevice::Text);
if(YearInfo.isOpen()){
QTextStream in(&YearInfo);
bool readEnabled = false;
QString outputText, startToken = line, endToken = "*"; // line = "2019"
while(!in.atEnd()){
QString getLine = in.readLine();
if(getLine == endToken){
readEnabled = false;
}
if(readEnabled){
outputText.append(getLine + "\n");
}
if(getLine == startToken){
readEnabled = true;
}
}
ui->listWidget->addItem(outputText);
}
YearInfo.flush();
YearInfo.close();
文本文件包含:
2019 Position Division Title Date (W.M./R.M./J.R) *
2020 职位部门标题日期(P.M./V.R/S.T) *
【问题讨论】:
-
你的实际问题是什么?
-
程序不显示文件的部分。事实上,它什么也没显示,我尝试了很多形式,但似乎我做错了什么。所以我的问题是,为什么我的代码没有显示文本文件的部分?
-
您的代码似乎很好,并且可以按照您的预期进行。尝试发布您正在使用的文本文件的示例。还要仔细检查调试器或使用
qWarning()添加一些调试消息,startToken的值是您所期望的,并且文件打开确实成功。希望这会有所帮助 =) -
谢谢!我会试试。我将添加文本示例@WilliamSpinelli
-
我不明白你的问题。每一行中最多可以有一个标记,从 startToken 开始,到 endToken 结束。您要检查每个读取的行是否符合模板。我没听错吗?
标签: c++ qt file qlistwidget