首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查文本文件中的特定行是否以特定单词开头

如何检查文本文件中的特定行是否以特定单词开头
EN

Stack Overflow用户
提问于 2016-11-12 06:15:33
回答 3查看 529关注 0票数 2

我有一个文本文件,将路径写入到磁盘分区中的所有文件。

代码语言:javascript
复制
WriteToFile::WriteToFile(QString path, QString data)
{
    path = "E:/Data.txt";
    QFile file(path);
    if ( file.open(QFile::Append) )
    {
        data += "\r\n";
        QTextStream stream( &file );
        stream << data << endl;
        qDebug() << "Writting: " << data;

    }
}

我只将新路径写入文件中。

代码语言:javascript
复制
void ScanDir::qDirIteratorScanner()
{
    // QString basePath;
    QDirIterator it(this -> basePath, QDir::Files, QDirIterator::Subdirectories);
    while (it.hasNext())
    {
        // QStringList paths;
        paths = scanned();
        QString path = it.next();

        qDebug() << "Collected : " << paths.size();

        if (!paths.contains(path)) {
            WriteToFile writeToFile(basePath, path);
            paths << path;
        }
        else {
            qDebug() << "Already put : " << path;
        }
    }

}

我预计有时我会开始扫描一个分区,但是在程序完成一个分区之前停止它。我想通过在文件的最后一个路径条目的开头加上“最后扫描点”(如果是一个新路径)或最后一个if (!paths.contains(path)) (如果我在检查路径是否已经插入文件时终止了程序)来标记我最后一次停止的位置。

如何检查以LAST-SCAN-POINT开头的行的文本文件

Data.txt

C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7010.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7011.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7012.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7013.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7014.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7015.idrc LAST-SCAN-POINT C:/Program /Adobe/Adobe 2015/插件/布局/(对齐面板资源)/LAST-SCAN-POINT_PNGA/7016.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7017.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7018.idrc C:/Program /Adobe/Adobe InDesign CC 2015/插件/布局/(对齐面板资源)/idrc_PNGA/7019.idrc

EN

回答 3

Stack Overflow用户

发布于 2016-11-12 08:08:54

使用QString::startsWith 方法怎么样?例如:

代码语言:javascript
复制
QString path = "LAST-SCAN-POINT C:/Program Files/Adobe/Adobe InDesign CC 2015/Plug-Ins/Layout/(Alignment Panel Resources)/idrc_PNGA/7016.idrc";

if(path.startsWith("LAST-SCAN-POINT ")) {

    qDebug() << "The path starts with 'LAST-SCAN-POINT '";
} else {
    qDebug() << "The path does not start with 'LAST-SCAN-POINT '!";
}
票数 1
EN

Stack Overflow用户

发布于 2016-11-12 08:17:41

为了简单地搜索txt文件中的“最后扫描点”,您可以这样做:

代码语言:javascript
复制
int readFile(std::string path)
{
std::ifstream filestream(path);
std::string line;
char lsp[16];
int i = 0;
while (std::getline(filestream, line))
{
    std::stringstream linestream;
    linestream << line;
    linestream.get(lsp, 16);
    if (std::string(lsp) == "LAST-SCAN-POINT")
    {
        filestream.close();
        return i;
    }
    i++;
}
filestream.close();
return -1;
}

这将返回行的最后扫描点是打开或-1,如果它不存在.

票数 1
EN

Stack Overflow用户

发布于 2016-11-16 12:40:01

只需使用readLine QFile (docs here http://doc.qt.io/qt-4.8/qiodevice.html#readLine)实时读取一行,然后使用Moe Abdul-Hameed所示的QString的startsWith函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40560118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档