删除文本文件QT中的单行

时间:2014-07-07 18:07:18

标签: c++ qt text-files line

我有一个看起来像这样的文本文件(例子):

123456789 18-5-2014
985665547 23-12-2016

我在while(!file.atEnd)构造中的读/写功能如下:

while (!file.atEnd()) 
{
    if (date-currentdate<42) {
        ui->label->setText(number); //number is the number before the date in the text file
    //Here I want the function to delete the current line
    }

}

我想要的是从我的文本文件中删除if语句中刚才使用的行。按行(例如)我的意思是123456789 15-5-2014。但我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果文件可能很大:

  1. 创建一个临时文件。
  2. 在阅读时,将临时文件写入除要删除的行之外的所有行。
  3. 删除原始文件。
  4. 将临时文件重命名为原始文件。
  5. 如果您知道文件总是很小,您可以选择执行以下操作:

    1. 在内存中读取所有行,但要删除的行除外。
    2. 使用您现在在内存中的字符串重写文件。