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表示成功

 

posted @ 2012-12-17 10:51  大猫814  阅读(19358)  评论(0编辑  收藏  举报