您的位置:首页 > 编程语言 > C语言/C++

C/C++ INI文件操作

2015-10-07 21:13 405 查看
一、INI文件用途:

1、存储程序的初始化信息;

2、存储需要保存的数据信息。

二、INI文件结构:

由节名、键名、键值组成。形式如下:

[节名]

键名 = 键值

备注:一个INI文件,可以用多个节。

三、读取INI文件

1、WritePrivateProfileString

该函数用于向INI文件中写入一个字符串数据。

函数原型如下:

BOOL WritePrivateProfileString(
LPCTSTR lpAppName,  // pointer to section name
LPCTSTR lpKeyName,  // pointer to key name
LPCTSTR lpString,   // pointer to string to add
LPCTSTR lpFileName  // pointer to initialization filename
);


参数说明:

lpAppName:指定节名,以空终止结尾的字符串。如果INI文件中节名不存在,将创建一个节名。

lpKeyName:键名,以空终止结尾的字符串。如果INI文件中该键名不存在,将创建一个键名。如果该参数为NULL,包括节及节下的所有项目都将被删除。

lpString:写到键值中的数据,以空终止结尾的字符串。

lpFileName:INI文件的名称,以空终止结尾的字符串。指定需要写入数据的INI文件,如果指定的INI文件不存在将创建。

返回值:

如果函数成功将字符串复制到初始化文件,返回值是非零。

如果函数失败,刷新缓存版本的最近访问初始化文件,返回值是零。

2、GetPrivateProfileString

该函数用于获取INI文件中的键值。

函数原型如下:

DWORD GetPrivateProfileString(
LPCTSTR lpAppName,        // points to section name
LPCTSTR lpKeyName,        // points to key name
LPCTSTR lpDefault,        // points to default string
LPTSTR lpReturnedString,  // points to destination buffer
DWORD nSize,              // size of destination buffer
LPCTSTR lpFileName        // points to initialization filename
);


参数说明:

lpAppName:指定节名,以空终止结尾的字符串。如果该参数为NULL,函数将复制所有的节名到所指定的缓冲区中。

lpKeyName:键名,以空终止结尾的字符串。如果该参数为NULL,函数将lpAppName节下所有的键名复制到lpReturnedString缓冲区。

lpDefault:默认值,以空终止结尾的字符串。如果获取键值的键名不存在时,返回设置的默认值。

lpReturnedString:用于接受数据的缓冲区。

nSize:以字符为单位表示lpReturnedString缓冲区的大小。

lpFileName:INI文件名称,以空终止结尾的字符串。

返回值:

返回值是字符复制到缓冲区的数量,不包括终止null字符。

3、GetPrivateProfileInt

该函数用于从INI文件中获取整型数据。

函数原型如下:

UINT GetPrivateProfileInt(  LPCTSTR lpAppName,  // address of section name
LPCTSTR lpKeyName,  // address of key name
INT nDefault,       // return value if key name is not found
LPCTSTR lpFileName  // address of initialization filename
);


参数说明:

lpAppName:节名。

lpKeyName:键名。

nDefault:默认值。

lpFileName:INI文件名称。

返回值:

函数返回实际读取的整数值。

4、GetPrivateProfileSectionNames

该函数用于返回INI文件中的所有节名。

函数原型如下:

DWORD GetPrivateProfileSectionNames(
LPTSTR lpszReturnBuffer,  // address of return buffer
DWORD nSize,              // size of return buffer
LPCTSTR lpFileName        // address of initialization filename
);


参数说明:

lpszReturnBuffer:接受节名的数据缓冲区。

nSize:缓冲区的大小。

lpFileName:INI文件名称。

返回值:

返回值指定数量的字符复制到指定的缓冲,不包括终止null字符。

如果缓冲区没有大到足以包含所有相关的部分名称指定的初始化文件,返回值等于指定的长度nSize - 2。

5、GetPrivateProfileSection

该函数用于获取指定节下的所有的键名和键值。

函数原型如下:

DWORD GetPrivateProfileSection(
LPCTSTR lpAppName,        // address of section name
LPTSTR lpReturnedString,  // address of return buffer
DWORD nSize,              // size of return buffer
LPCTSTR lpFileName        // address of initialization filename
);


参数说明:

lpAppName:节名。

lpReturnedString:用于接受数据的缓冲区。

nSize:缓冲区的大小。

lpFileName:INI文件名称。

返回值:

返回值指定数量的字符复制到缓冲区,不包括终止null字符。

如果缓冲区没有大到足以包含所有与指定相关联的键名称和值对部分,返回值等于nSize - 2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: