木木夕阳子 2018-12-12 18:39 采纳率: 50%
浏览 736
已采纳

以CFile::modeCreate 模式打开文件,数据清除失败

如题,写的mfcdll工程,保存数据时,创建了cflie对象,打开文件使用了清除模式,但是保存时,数据会重复写入,有没有解决方案?

ps,关闭软件,重新打开,第一次写入数据时会清空

CStdioFile f;
f.Open(path,CFile::modeCreate | CFile::modeWrite );
CHFile * pFile = new CHFile(&f);

//测试;
CBigDetect* pToolBigDetect = new CBigDetect;
HS_BASE_LIST.push_back((CBase*)pToolBigDetect);

int nSize = HS_BASE_LIST.size();
for (int i = 0 ; i < nSize ; i++)
{
    CBase* pTool = HS_BASE_LIST[i];
    if (pTool){
        pTool->WriteConfig(pFile);
    }
}
//关闭操作;
f.Close();

  • 写回答

2条回答 默认 最新

  • 木木夕阳子 2018-12-12 20:43
    关注

    找到原因了,并不是cfile打开文件没有清空,而是我在下边的测试代码段,
    CBigDetect* pToolBigDetect = new CBigDetect;
    HS_BASE_LIST.push_back((CBase*)pToolBigDetect);

    我点击保存后,再把文件删除,重新保存,结果数据还是重复的,但是关闭后第一次保存会清空,突然意识到是数据没有清空
    这才意识到,push_back之前没有清空数据,

    被自己蠢哭了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部