对一个已存在文本文件重新写入,用的是CStdioFile类问题是:
1.如果我不在读完文件后再写入会出现最后一行存在和倒数第二行重复
2.如果我在读完后追加写入一个"\n"会多出一行空白的,就是比原文件要增加一行,也是说最后两行都为空行
PS:要删除其中某一行,边读边写,遇到符合删除条件的就用下一行替代,达到删除目的。
可能要有人建议重建一个文件,那是可以实现,但那样不是我想要的效果
1.如果我不在读完文件后再写入会出现最后一行存在和倒数第二行重复
2.如果我在读完后追加写入一个"\n"会多出一行空白的,就是比原文件要增加一行,也是说最后两行都为空行
PS:要删除其中某一行,边读边写,遇到符合删除条件的就用下一行替代,达到删除目的。
可能要有人建议重建一个文件,那是可以实现,但那样不是我想要的效果
在File中,直接移动到文件末尾,然后写入数据
一个文件一边读,一边写
如果读取过程中,发现符合要求的行,就删除FilePath="c:\\test.txt";
RemoveUrl="http://www.baidu.com";
CStdioFile sfr(FilePath,CFile::typeText|CFile::shareDenyNone|CFile::modeRead);
CStdioFile sfw(FilePath,CFile::typeText|CFile::shareDenyNone|CFile::modeWrite);
if(sfr && sfw)
{
CString strLine;
while (sfr.ReadString(strLine))
{
if((strLine==RemoveUrl)||(strLine==""))
{
continue;
}
sfw.WriteString(strLine+'\n');
}
sfw.WriteString("\n");
}
sfw.Close();
sfr.Close();
可在你的程序中只看到WriteString
你到底在实现什么功能?