GetPrivateProfile系列函数
string strPath(CONFIG); strPath += "\\LOG.ini"; cout<<strPath<<endl; int res = WritePrivateProfileStringA("section", "key1", "123", strPath.c_str());//0表示失败,非0表示成功 cout<<res<<endl; int num = GetPrivateProfileIntA("section", "key1", 100, strPath.c_str());//如果没有section和key1的话才会返回默认值100 cout<<num<<endl; char str[10]; num = GetPrivateProfileStringA("section2", "key3", "no find", str, sizeof(str), strPath.c_str());//会忽略value前的空格 cout<<num<<endl; cout<<str<<endl; char str2[50]; num = GetPrivateProfileSectionA("section", str2, sizeof(str2), strPath.c_str()); cout<<num<<endl; for (char *p = str2; p < str2 + 50; p++) { cout<<*p; } cout<<endl;
配置文件格式:
结果:
1.GetPrivateProfileInt函数
GetPrivateProfileInt =>从ini文件取得数值
<参数>
lpApplicationName:
lpKeyName:
nDefault:
lpFileName:
<返回值>
取得数值
说明:
为初始化文件中指定的条目获取一个整数值
返回值:
Long,找到的条目的值;如指定的条目未找到,就返回默认值。如找到的数字不是一个合法的整 数,函数会返回其中合法的一部分。如,对于“xyz=55zz”这个条目,函数返回55。这个函数也能理解采用标准C语言格式的十六进制数字:用0x作为 一个十六进制数字的前缀——所以0x55ab等价于vb的&H55AB
参数类型及说明:
lpApplicationName String,指定在其中查找条目的小节。注意这个字串是不区分大小写的
lpKeyName String,欲获取的设置项或条目。这个支持不区分大小写
nDefault Long,指定条目未找到时返回的默认值
lpFileName String,初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件
2.GetPrivateProfileString 函数
GetPrivateProfileString =>从ini文件取得文字列
<参数>
lpAppName:
lpKeyName:
lpDefault:
lpReturnedString:
nSize:
inifilename:
<返回值>
取得字符串 (lpReturnedString)。同时返回一个整数,大小为取得字符串的长度。
说明:
为初始化文件中指定的条目取得字串
返回值:
Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL 中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或 lpKeyName为NULL,则返回nSize-2)
参数类型及说明:
lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表
lpDefault String,指定的条目没有找到时返回的默认值。可设为空("")
lpReturnedString String,指定一个字串缓冲区,长度至少为nSize
nSize Long,指定装载到lpReturnedString缓冲区的最大字符数量
lpFileName String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件
3.GetPrivateProfileSection函数
GetPrivateProfileSection
功能:
GetPrivateProfileSection =>从指定的文件中取得全部的关键字的值
DWORD GetPrivateProfileSection(
LPCTSTR lpAppName,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName);
说明:
获取指定小节所有项名和值的一个列表
返回值:
Long,装载到lpReturnedString缓冲区的字符数量。如缓冲区的容量不够大,不能容下所有信息,就返回nSize-2
同时返回一个整数,大小为取得字符串的长度,包括NULL字符,不包括最后的NULL字符
参数类型及说明:
lpAppName String,欲获取的小节。注意这个字串不区分大小写
lpReturnedString String,项和值字串的列表。每个字串都由一个NULL字符分隔,最后一个字串后面用两个NULL字符中止
nSize Long,lpReturnedString缓冲区的大小。在windows系统中最大值为32767
lpFileName String,初始化文件的名字。如没有指定完整路径名,windows就在Windows目录中查找文件
4.WritePrivateProfileString函数
功能:
WritePrivateProfileString=>修改指定的文件中指定的关键字的值
<参数>
lpApplicationName:欲在其中查找条目的小节名称。这个字串不区分大小写。
lpKeyName:欲获取的设置项或条目。这个支持不区分大小写
lpString:要修改的值的字符串
lpFileName:初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件
返回值:
0表示失败,非0表示成功