木木夕阳子 2018-12-13 02:39 采纳率: 50%
浏览 734
已采纳

以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-13 04:43
    关注

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

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

    被自己蠢哭了

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

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64