C ++ Qt-读取文本文件的特定部分

问题描述 投票:0回答:3

我想在列表小部件中读取文本文件的特定部分。我尝试了不同的方法,并在网上寻找一些解决方案,但找不到很多。我是使用Qt的新手,但在很大程度上与它相处得很好。

QFile YearInfo("C:/Users/Documents/info.txt");
        YearInfo.open(QIODevice::ReadWrite | QIODevice::Text);
        if(YearInfo.isOpen()){
            QTextStream in(&YearInfo);
            bool readEnabled = false;
            QString outputText, startToken = line, endToken = "*"; // line = "2019"
            while(!in.atEnd()){
               QString getLine = in.readLine();
               if(getLine == endToken){
                   readEnabled = false;
               }

               if(readEnabled){
                   outputText.append(getLine + "\n");
               }

               if(getLine == startToken){
                   readEnabled = true;
               }
            }
            ui->listWidget->addItem(outputText);
        }
            YearInfo.flush();
            YearInfo.close();

文本文件包含:

2019职位部门职务日期(西马/西马/西马)*

2020职位部门职称日期(下午/下午/下午)*

我想在列表小部件中读取文本文件的特定部分。我尝试了不同的方法,并在网上寻找一些解决方案,但找不到很多。我刚使用Qt,但与...

c++ qt file qlistwidget
3个回答
0
投票

您编写的代码只要您尝试提取以以下方式设置格式的文本,就可以使用


0
投票

要查找字符串的条目,我使用QRegExp。请注意,由于您有一个stopToken,如QRegExp的特殊符号,可能会更改为“ \ *:


0
投票
        QFile YearInfo("C:/Users/Documents/info.txt");
        YearInfo.open(QIODevice::ReadOnly | QIODevice::Text);
        if(YearInfo.isOpen()){
            QTextStream in(&YearInfo);
            bool readEnabled = false;
            QString outputText = "", startToken = line.trimmed(), endToken = "*";

            while(!in.atEnd()){
                QString getLine = in.readLine().trimmed();

                if(getLine == startToken){
                    readEnabled = true;
                }

                if(readEnabled){
                    outputText.append(getLine + "\n");
                }

                if(getLine == endToken){
                    readEnabled = false;
                }
            }
            ui->listWidget->addItem(outputText);
        }
            YearInfo.close();
© www.soinside.com 2019 - 2024. All rights reserved.