C/C++ INI文件操作
2015-10-07 21:13
405 查看
一、INI文件用途:
1、存储程序的初始化信息;
2、存储需要保存的数据信息。
二、INI文件结构:
由节名、键名、键值组成。形式如下:
[节名]
键名 = 键值
备注:一个INI文件,可以用多个节。
三、读取INI文件
1、WritePrivateProfileString
该函数用于向INI文件中写入一个字符串数据。
函数原型如下:
参数说明:
lpAppName:指定节名,以空终止结尾的字符串。如果INI文件中节名不存在,将创建一个节名。
lpKeyName:键名,以空终止结尾的字符串。如果INI文件中该键名不存在,将创建一个键名。如果该参数为NULL,包括节及节下的所有项目都将被删除。
lpString:写到键值中的数据,以空终止结尾的字符串。
lpFileName:INI文件的名称,以空终止结尾的字符串。指定需要写入数据的INI文件,如果指定的INI文件不存在将创建。
返回值:
如果函数成功将字符串复制到初始化文件,返回值是非零。
如果函数失败,刷新缓存版本的最近访问初始化文件,返回值是零。
2、GetPrivateProfileString
该函数用于获取INI文件中的键值。
函数原型如下:
参数说明:
lpAppName:指定节名,以空终止结尾的字符串。如果该参数为NULL,函数将复制所有的节名到所指定的缓冲区中。
lpKeyName:键名,以空终止结尾的字符串。如果该参数为NULL,函数将lpAppName节下所有的键名复制到lpReturnedString缓冲区。
lpDefault:默认值,以空终止结尾的字符串。如果获取键值的键名不存在时,返回设置的默认值。
lpReturnedString:用于接受数据的缓冲区。
nSize:以字符为单位表示lpReturnedString缓冲区的大小。
lpFileName:INI文件名称,以空终止结尾的字符串。
返回值:
返回值是字符复制到缓冲区的数量,不包括终止null字符。
3、GetPrivateProfileInt
该函数用于从INI文件中获取整型数据。
函数原型如下:
参数说明:
lpAppName:节名。
lpKeyName:键名。
nDefault:默认值。
lpFileName:INI文件名称。
返回值:
函数返回实际读取的整数值。
4、GetPrivateProfileSectionNames
该函数用于返回INI文件中的所有节名。
函数原型如下:
参数说明:
lpszReturnBuffer:接受节名的数据缓冲区。
nSize:缓冲区的大小。
lpFileName:INI文件名称。
返回值:
返回值指定数量的字符复制到指定的缓冲,不包括终止null字符。
如果缓冲区没有大到足以包含所有相关的部分名称指定的初始化文件,返回值等于指定的长度nSize - 2。
5、GetPrivateProfileSection
该函数用于获取指定节下的所有的键名和键值。
函数原型如下:
参数说明:
lpAppName:节名。
lpReturnedString:用于接受数据的缓冲区。
nSize:缓冲区的大小。
lpFileName:INI文件名称。
返回值:
返回值指定数量的字符复制到缓冲区,不包括终止null字符。
如果缓冲区没有大到足以包含所有与指定相关联的键名称和值对部分,返回值等于nSize - 2。
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。
相关文章推荐
- C/C++中的extern关键字详解
- C++头文件
- strftime()函数,C语言时间格式化
- c语言中地址加法与减法
- C语言的存储类型的个人理解
- c++中xx.h和xx.cpp之间的联系
- 项目34.2-1麻烦的累加涨功夫
- 项目34.1 分数的累加
- C++第三课 语句的输入输出
- C++ 值传递、指针传递、引用传递的区别
- C++函数内大数组导致段错误
- switch中的break控制
- 项目33.2 求阶乘
- C++输出格式
- C++ const用法
- Connecting C++ and XAML
- 项目33.1利用循环求和
- 又开了一个C语言最强最全班
- C++实现KMP算法(优化版)
- 【C语言】求1-1/2+1/3-1/4+1/5....+1/99-1/100