如何使用Qt在文本文件中搜索字符串

How to search for a string in a text file using Qt

我正在尝试在文本文件中搜索字符串;我的目标是只有当它还没有写在我的文本文件中时才写它。

这是我的函数(我不知道如何放入 while 循环):

QFile MyFile("text.txt");
MyFile.open(QIODevice::ReadWrite);
QTextStream in (&MyFile);

while(!MyFile.atEnd())
  { //do something to search string inside }

MyFile.close();

我该怎么做?在 Qt 的帮助中,方法 "contains" 仅适用于 const 变量;我可以用它来查找我的字符串吗?

文件不大的情况下

QFile MyFile("text.txt");
MyFile.open(QIODevice::ReadWrite);
QTextStream in (&MyFile);
const QString content = in.readAll();
if( !content.contains( "String" ) {
//do something
}
MyFile.close();

如果文件较大,请按照 vahancho 的建议不重复其他答案

您可以执行以下操作:

[..]
QString searchString("the string I am looking for");
[..]
QTextStream in (&MyFile);
QString line;
do {
    line = in.readLine();
    if (!line.contains(searchString, Qt::CaseSensitive)) {
        // do something
    }
} while (!line.isNull());