- 比如修改文件的第二行,先创建一个临时文件,将想要修改的文件的第一行先写 到临时文件中,然后将修改的内容写入到第二行,接着将想要修改的文件的剩下的所有行依依写入临时文件中,最后删除旧文件和将临时文件名修改成旧文件的名。
CStdioFile newFile;
CStdioFile oldFile;
newFile.Open(_T("temp.csv"), CFile::typeText | CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate);
oldFile.Open(_T("历史数据.csv"), CFile::typeText | CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate);
char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
_tsetlocale(LC_CTYPE, _T("chs"));
CString str;
oldFile.ReadString(str);
str += _T("\n");
newFile.WriteString(str);
str = _T("修改后,11,22,33,44,55,end,\n");
newFile.WriteString(str);
oldFile.ReadString(str);
while (oldFile.ReadString(str))
{
str += _T("\n");
newFile.WriteString(str);
}
free(old_locale);
oldFile.Close();
newFile.Close();
oldFile.Remove(_T("历史数据.csv"));
newFile.Rename(_T("temp.csv"), _T("历史数据.csv"));
- 修改前的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/77bb27e88c3a4cd39de4e749f470430f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6I6r5ZCN55qE5oOF57uq54Sm6LqB,size_12,color_FFFFFF,t_70,g_se,x_16)
- 修改后的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/b1388dc676bc45c0a17c80f501ef16a1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6I6r5ZCN55qE5oOF57uq54Sm6LqB,size_15,color_FFFFFF,t_70,g_se,x_16)