QT 如何在文件中查找是否有该字符或字符串?

QT 如何在文件中查找是否有该字符或字符串?,第1张

"),QMessageBox::Ok)return

0}check=file.readAll()

//一、查找是否有括号里的字符或字符串如果有,返回1,如果无,返回0

check.contains(string)

如果要忽略大小写,带参数:check.contains(string,Qt::CaseInsensitive)

//二、查找是否有括号里的字符或字符串,如果有,返回当前位置(如例,返回0),如果无,返回-1,注意位置是

从0开始

//都可以带很多参数

用QT查找字符串并标记要查找的内容,使用以下代码即可实现:

QString searchString = ui->lineEdit_2->text()

 QTextDocument *document = ui->description->document()

 ui->description->setHtml(ui->description->document()->toPlainText())

 int number=0

 bool found = false

 QTextCursor highlightCursor(document)

 QTextCharFormat plainFormat(highlightCursor.charFormat())

 QTextCharFormat colorFormat = plainFormat

 colorFormat.setForeground(Qt::red)

 if(ui->description->toPlainText()==""){

 QMessageBox::information(this, tr("description first"),

 "Sorry, please display the description first!")

 }

 else{

 ui->result->setPlainText("")

 QString resultstring="搜索结果:"

 QString laststring

/*while循环体是本代码的关键-——开始——*/ 

while (!highlightCursor.isNull() && !highlightCursor.atEnd()) {

 if(ui->daxiaocheckBox->isChecked()==true){

 highlightCursor = document->find(searchString, highlightCursor,QTextDocument::FindCaseSensitively)

 }//这个是实现大小写区分效果的代码,你可能不需要

 else

 highlightCursor = document->find(searchString, highlightCursor)

 if (!highlightCursor.isNull()) {

 number++

 found = true

 highlightCursor.movePosition(QTextCursor::Right,QTextCursor::KeepAnchor,0)

 highlightCursor.mergeCharFormat(colorFormat)

 laststring=QString::number(highlightCursor.position(),10)

 if(ui->onlyTwo->isChecked()==true){

 if(number<=1)

 resultstring+="n occurrence"+QString::number(number,10)+":—— position:"+QString::number(highlightCursor.position(),10)

 }//这个是实现大小写区分效果的代码,你可能不需要 

else

 resultstring+="n occurrence"+QString::number(number,10)+":—— position:"+QString::number(highlightCursor.position(),10)

 }

 }

/*关键代码结束*/

 if(number>1&&ui->onlyTwo->isChecked()==true)

 resultstring+="n occurrence"+QString::number(number,10)+":—— position:"+laststring

 ui->result->setPlainText(resultstring)

 if (found == false) {

 QMessageBox::information(this, tr("Word Not Found"),

 "Sorry, the word cannot be found.")

 }

 else {

 QMessageBox::information(this, tr("Word was Found"),

 "the word '"+searchString+"' was found for "+QString::number(number,10)+((number>1)? " times":" time"))

 }

 }

if(model->select())

{

//有数据

}else

{

QMessageBox::warning(this,tr("警告"),tr("找不到相符号码!"),QMessageBox::Yes)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10088014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存