如何在Qt5中的特定条目打开/关闭文件
How to open/close file at a specific entry in Qt5
我正在制作一个程序,该程序需要能够在特定点编辑文件,而特定行无法编辑,因为行数会随着时间的推移而变化。我计划使用qt的textEdit菜单元素来完成此操作。
例如,假设我有一个文件,其中有一个注释,如下所示:
#qtread
lots
of
stuff
#qtend
有没有什么方法可以让Qt文本编辑打开文件,只编辑#qtread和#qtend条目之间的内容?
(此外,我完全是Qt的初学者,所以一个愚蠢的答案将是极好的,谢谢!)
您可以像这样逐行读取文件。创建指示是否读取的bool
,例如readEnabled
。在你读过这行之后,检查你的代币:
QFile inputFile(fileName);
QString outputText, startToken = "#qtread", endToken = "#qtend";
if (inputFile.open(QIODevice::ReadOnly))
{
QTextStream in(&inputFile);
bool readEnabled = false;
while (!in.atEnd())
{
QString line = in.readLine();
if(line == endToken) // the whole line has to match your comment
readEnabled = false;
if(readEnabled)
outputText.append(line + "n");
if(line == startToken)
readEnabled = true;
}
inputFile.close();
}
你可能想完善一下。如果您想在评论之后立即开始阅读,或者接受带有尾随空格的评论,请参阅QString::left
、QString::mid
、QString::right
,并尝试将其组合在一起。
编辑:
对不起,我忽略了你也想把它存回来。在这种情况下,编写文件实际上要困难得多,我会用C++标准库来完成。我鼓励您搜索,发布一个没有qt标志的新问题。
相关文章:
- Qt5 复制(复制)可执行文件
- 如何使用QJSONARRAY在QT5(C )中解析JSON文件(数组)
- 在 Windows 10 上找不到 ./****.h 文件 qt5,C++
- 将 .ui 文件导入 Qt5 C++时出错"was not declared in this scope"
- 将文件拖放到 Qt5 应用程序外部
- 如果文件中不存在qt5中的文件,如何原子创建该文件
- QT5.2资源文件
- 在任何平台上执行任何Qt5应用程序的重要dll文件是什么(运行时文件dll)
- qt5设计器,使用fileopen,在lineedit中显示文件路径,这样做是否有问题
- 如何在Qt5中的特定条目打开/关闭文件
- 从treeView和QFileSystemModel运行Qt5文件
- Qt5:如何在本地文件系统中读取/写入文件
- Qt5 Designer Ui文件中的QSystemTrayIcon
- 无法加载Qt5/cmake项目中Qt资源文件中指定的图像
- CMake & QT5 - QT5_WRAP_UI不生成 UI 头文件
- 在Qt5/C++中向后查找文本文件(尾随文件)
- ui_*文件不是由QT5.5生成的
- Qt5到Qt4 UI文件兼容性
- 如何在qt5中使用QSound播放.wav文件
- 在崩溃时需要更新的Qt5 ini文件