Qt的,具体的行QFile时写

我碰到的Qt中的另一个问题是,我似乎无法弄清楚如何在与一个文本文件中的特定行写QFile 。 相反,一切都将被删除开头写的。 因此,与给定的信息,我怎么会写在一个特定的行QFile

这里有两个功能。

  1. 所述第一函数搜索一个文件,然后获得两个变量。 一说找到下一个空行,一个获取当前的ID号。
  2. 第二个功能是应该写。 但我看了文件我需要什么,我GOOGLE了它,并尝试了很多的搜索无果。

功能1



QString fileName = "C:\\Users\\Gabe\\SeniorProj\\Students.txt"; QFile mFile(fileName); QTextStream stream(&mFile); QString line; int x = 1; //this counts how many lines there are inside the text file QString currentID; if(!mFile.open(QFile::ReadOnly | QFile::Text)){ qDebug() << "Could not open file for reading"; return; } do { line = stream.readLine(); QStringList parts = line.split(";", QString::KeepEmptyParts); if (parts.length() == 3) { QString id = parts[0]; QString firstName = parts[1]; QString lastName = parts[2]; x++; //this counts how many lines there are inside the text file currentID = parts[0];//current ID number } }while (!line.isNull()); mFile.flush(); mFile.close(); Write(x, currentID); //calls function to operate on file }

上面的函数读取文件,它看起来像这样。

1001;James;Bark 1002;Jeremy;Parker 1003;Seinfeld;Parker 1004;Sigfried;FonStein 1005;Rabbun;Hassan 1006;Jenniffer;Jones 1007;Agent;Smith 1008;Mister;Anderson

而函数获取那我想我可能需要两个信息位。 我不是太熟悉QFile和搜索,但是我觉得我需要这些变量:

int x; //This becomes 9 at the end of the search. QString currentID; //This becomes 1008 at the end of the search.

所以,我在这些变量下一个函数传递,在功能1.结束Write(x, currentID);

功能2



void StudentAddClass::Write(int currentLine, QString idNum){ QString fileName = "C:\\Users\\Gabe\\SeniorProj\\Students.txt"; QFile mFile(fileName); QTextStream stream(&mFile); QString line; if(!mFile.open(QFile::WriteOnly | QFile::Text)){ qDebug() << "Could not open file for writing"; return; } QTextStream out(&mFile); out << "HelloWorld"; }

我已经离开了任何企图修复自己的问题,这一切功能将是“HelloWorld”的替换文本文件中的所有内容。

有谁知道如何在一个特定的行写,或者至少去该文件的末尾,然后写?

--------------解决方案-------------

如果你想插入到该文件的行总是最后一行(如函数1建议),您可以尝试打开使用了QIODevice ::追加追加模式在文件中的写入方法。

如果要插入的文件中间一条线,我想一个简单的方法是使用一个临时文件(或者,如果可能的话,加载行到QList,使用插入行并写入列表回文件)

QString fileName = "student.txt";
QFile mFile(fileName);

if(!mFile.open(QFile::Append | QFile::Text)){
qDebug() << "Could not open file for writing";
return 0;
}

QTextStream out(&mFile);
out << "The magic number is: " << 4 << "\n";

mFile.close();

上面的代码片段将追加文“神奇的数字是:4”,在文件的结尾。

分类:C# 时间:2013-04-01 人气:0
本文关键词: QFile时
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.353 (s). 10 q(s)