CString的Format函数大用处-----整型值转为字符型和实现AfxMessageBox字符串或字符串和整型值连接,工具VS2010
//向Ini写入数据
void CMdSpi::TestWriteIni(){
CString strName,strTemp,strIP;
int nAge;
strName = "张武";
nAge = 15;
strIP = "10.10.137.23";
::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stu\\stu.ini");
//要将学生的年龄保存下来,只需将整型的值变为字符型即可:
strTemp.Format("%d",nAge);
::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stu\\stu.ini");
::WritePrivateProfileStringA("IPInfo","IPAddr",strIP,"c:\\ipinfo.ini");
::AfxMessageBox("写入成功!!!!");
}
//从Ini文件中Get数据,执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".
void CMdSpi::TestGetIni(){
CString strStuName,strIP,str,strAdd;
int nStuAge;
::GetPrivateProfileString("StudentInfo","Name","默认姓名",strStuName.GetBuffer
(MAX_PATH),MAX_PATH,"c:\\stu\\stu.ini");
strStuName.ReleaseBuffer();
nStuAge = ::GetPrivateProfileIntA("StudentInfo","Age",0,"c:\\stu\\stu.ini");
strAdd.Format("%s %d","从ini文件中读取整型数:",nStuAge);
::AfxMessageBox(strAdd);
::GetPrivateProfileStringA("IPInfo","IPAddr","默认IP",strIP.GetBuffer
(MAX_PATH),MAX_PATH,"c:\\ipinfo.ini");
strIP.ReleaseBuffer();
// ::AfxMessageBox("从ini文件中读取信息:" + strStuName); 参数中的字符串是不能相加的
::AfxMessageBox(strStuName);
str = "从ini文件中读取IP地址:";
strAdd.Format("%s %s",str,strIP);
::AfxMessageBox(strAdd);
}
Note:
1.WritePrivateProfileString()函数可以创建文件,但不能创建文件夹!即INI文件的路径必须完整,文件名前面的各级目录必须存在,否则写入不成功,该函数返回 FALSE 值.
2.调用完GetBuffer()后需要调用ReleaseBuffer()!
3.文件名的路径中必须为 \\ ,因为在VC++中, \\ 才表示一个 \ .
4.也可将INI文件放在程序所在目录,此时 lpFileName 参数为: ".\\stu.ini".
PS:
有必要了解INI文件的结构:
;注释
[小节名]
关键字=值
...
INI文件允许有多个小节,每个小节又允许有多个关键字, "="后面是该关键字的值。
值的类型有三种:字符串、整型数值和布尔值。其中字符串存贮在INI文件中时没有引号,
布尔真值用1表示,布尔假值用0表示。
注释以分号";"开头。