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

如何使用Qt在文本文件中搜索字符串,qt,search,text,qstring,Qt,Search,Text,Qstring,我试图在文本文件中搜索字符串;我的目标是,只有当它还没有写入我的文本文件时,才编写它 这是我的函数(我不知道如何放入while循环): 我该怎么做?在Qt的帮助下,方法“contains”只适用于常量变量;我可以用它来查找我的字符串吗?如果文件不大 QFile MyFile("text.txt"); MyFile.open(QIODevice::ReadWrite); QTextStream in (&MyFile); const QString content = in.readAll

我试图在文本文件中搜索字符串;我的目标是,只有当它还没有写入我的文本文件时,才编写它

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


我该怎么做?在Qt的帮助下,方法“contains”只适用于常量变量;我可以用它来查找我的字符串吗?

如果文件不大

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());

这仅在searchString不包含新行字符时才能准确工作。使用的命令似乎有效,但程序流逻辑无效:对不包含该字符串的每一行执行某些操作。您应该在代码的dosomething点切换一个布尔值,并中断循环。然后,在循环外检查这个bool,有条件地做一些事情。
[..]
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());