繁体   English   中英

如何打开/关闭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::leftQString::midQString::right并尝试将某些内容放在一起。

编辑:

对不起,我忽略了你也想把它保存起来。 在这种情况下编写文件实际上要困难得多,我会使用C ++标准库。 我鼓励你搜索一下,发一个没有qt标志的新问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM