一看到标题估计会有人会说,为什么还要讲INI文件内容读出来存放到map中呢?这不是浪费空间,时间么。。。
因为:C++在读取INI文件时,一般都是在需要时,再根据GetPrivateProfileString函数,读取需要的key对应的值,但是,往往在项目中,读取文件花费的时间比较多,且读取文件也是会存在读取错误的情况。综上考虑,将在开始的时候,从INI文件中读取所有信息,保存到对应的数据结构中,一下,我是保存在map中,方便后面使用。毕竟内存访问比文件操作要快的多。
整个思路如下:
1. 利用GetPrivateProfileSection函数,将指定Section下的所有key和keyvalue都存放在szBuffer参数中,下面,我们只需将该参数进行分解出来就好了。
int nSizeCount = GetPrivateProfileSection(strSectionName,szBuffer,4096,strFileName);
2.下面将是如何分解这些key=keyvalue的内容了,然后将分割后的内容存放到map中,供后面的程序使用。其中包括了CString类型转化为string类型的问题,这里我是将CString先转化为wstring,然后将wstring转化为string类型的思路。
string U2A(const wstring& str)//Unicode字符转Ascii字符</span>
{
s