如何替换文本文件中的行?

时间:2014-11-30 11:55:15

标签: c++ mfc

我有一个文本文件:

123
456
789

我想替换' 456'用" AAA"。我怎么能这样做?

CStdioFile cfile;
CString line;
cfile.Open(_T("D\\text.txt"), CFile::modeReadWrite);
while (cfile.ReadString(line))
{
    if (line == L"456")
        cfile.WriteString(L"AAA");
}

1 个答案:

答案 0 :(得分:1)

仅当新旧行具有相同的长度时才有效。

您可以保存文件流的当前位置。回到原来的位置,写下新的一行。

while (cfile.ReadString(line))
{ 
    auto llLine = cfile.GetPosition();
    if (line == L"456")
    {
       cfile.Seek(llLine, CFile::begin);
       cfile.WriteString(L"AAA");
    }
}

如果行的长度不同,则需要将内容写入新文件,并在进行更改后重命名。