ini文件读写时遇到的一个问题

最近在写一个小的应用,要把指定类型的文件扫描出来,然后删除。我把要删除的文件类型和可以使用的文件类型保存在一个ini文件中,这里遇到一个问题:当程序第二次运行的时候,要删除的文件类型或者可以使用的文件类型可能有一个是不正确的,因为我已经在程序中清空了的。后来发现了问题原因,如果你的ini文件中某个key对应的value如果不存在,那么记得清空该value,否则你上次写入的记录还在,再次读取的时候就读取的还是上次的!

list<CString>::iterator iter_beg = m_listAvailableType.begin(),
		iter_end = m_listAvailableType.end();
	CString strTmp;
	while (iter_beg != iter_end)
	{
		strTmp += *iter_beg++ + _T(" ");
	}
	if (0 == ::WritePrivateProfileString(_T("extensions"), _T("available"), 
		//这里记得清空:如果没有这种类型的文件!如果没有清空,上次的记录还在文件中保存着
		strTmp.IsEmpty() ? NULL : strTmp, 
		_T(".\\config.ini")))
	{
		TRACE(_T("GetLastError(): %d\n"), GetLastError());
	}

 

strTmp.IsEmpty() ? NULL : strTmp这个判断显得很重要,这保证每次的读取工作都正确

image

转载于:https://www.cnblogs.com/chenkunyun/archive/2012/03/30/2424585.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值