GetPrivateProfileString()和WritePrivateProfileString()函数的使用:
- GetPrivateProfileString()和WritePrivateProfileString()函数的使用:
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,
程序初始化实在读入,具体如下:
一、将信息写入INI文件中。
1、所用的WINAPI函数原型为:
BOOL WritePrivateProfileString(
LPCTSTR IpAppName,
LPCTSTR IpKeyName,
LPCTSTR IpString,
LPCTSTR IpFileName
);
其中各个参数的意义:
LPCTSTR IpAppName //是INI文件中的一个字段名
LPCTSTR IpKeyName //是IpAppName下一个键名,通俗的说就是变量名
LPCTSTR IpString //是键值,也就是变量的值,不过必须为LPCTSTR类型或者CStirng类型。
LPCTSTR IpFileName 是完整的INI文件名。
2、具体使用方法:假设现有一名学生,需要把他的姓名和年龄写入 c:\stud\student.ini文件中。
CString strName,strTemp;
int nAge;
strName = "张三“;
nAge = 20;
::WritePrivateProfileString("StudentInfo", "Name", strName,"c:\\stud\\strdent.ini”);
此时 c:\stud\student.ini文件的内容如下:
[StudentInfo]
Name=张三
3、要将学生的年龄保存下来,只需要将整形的值转换为字符型即可:
strTemp.Format("%d", nAge);
::WritePrivatProfilleString("StudetInfo", "Age", strTemp, "c:\\stud\\student,ini");
二、将信息从INI文件中读入程序的变量中。
1、所用的WINAPI函数原型为:
DWORD GetPrivatProfileString(
LPCTSTR IpAppName,
LPCTSTR IpKeyName,
LPCTSTR IpDefault, //如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量(IpKeyName)
LPCTSTR IpReturnedString, //接收INI文件中的值得CString对象,即目的缓存器。
DWORD nSize, //目的缓存器的大小
LPCTSTR IpFileName //完整的INI文件名。
);
2、具体实现方法:先要将上一步中写入的信息读入到程序中。
CString strStudName;
int nStudAge;
GetPrivateProfileString("StudentInfo", "Name", "默认姓名“, strStudName.GetBuffer(MAX_PATH), MAX_PATH,
"c:\\stud\\student.ini");
执行后strStudName的值为:“张三”,若前两个参数有误,其值为:“默认姓名”.
3、读入整型值要用另一个WINAPI函数:
UINT GetPrivateProfileInt(
LPCTSTR IpAppName,
LPCTSTR IpKeyName,
INT nDefault,
LPCTSTR IpFileName
);
这里的参数意义遇上相同。使用方法如下:
nStudAge = GetPrivateProfileInt("StudentInfo" , "Age" , 10 , "c:\\stud\\student.ini");