• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

C++ini文件操作

武飞扬头像
Yry~
帮助1

C/C INI文件操作 C/C INI文件操作实现代码

提示:这里可以添加系列文章的所有文章的目录,目录需要是的自己手动添加
利用C 实现ini文件读取保存及代码案例


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


一.ini文件结构

ini文件是由若干个节(Sction)组成,每个节又由若干个键(Key)组成。
总体而言ini文件由节名、键名、键值组成。形式如下:
[节名]
键名 = 键值
备注:一个INI文件,可以用多个节。


二.ini文件的读写操作函数

涉及到的变量名:
LPCTSTR lpAppName, //节名
LPCTSTR lpKeyName, //键名
LPCTSTR lpString, //键值
LPCTSTR lpFileName, //保存的文件
参数说明:
参数说明:
lpAppName:指定节名,以空终止结尾的字符串。如果INI文件中节名不存在,将创建一个节名。
lpKeyName:键名,以空终止结尾的字符串。如果INI文件中该键名不存在,将创建一个键名。如果该参数为NULL,包括节及节下的所有项目都将被删除。
lpString:写到键值中的数据,以空终止结尾的字符串。
lpFileName:INI文件的名称,以空终止结尾的字符串。指定需要写入数据的INI文件,如果指定的INI文件不存在将创建。

1.写操作:WritePrivateProfileString

需要包含头文件#include<Windows.h>
该函数用于向INI文件中写入一个字符串数据。
函数原型:

BOOL WritePrivateProfileString(
	LPCTSTR lpAppName, //节名
    LPCTSTR lpKeyName, //键名
    LPCTSTR lpString, //键值
    LPCTSTR lpFileName, //保存的文件
)

返回值:
如果函数成功将字符串复制到初始化文件,返回值是非零。
如果函数失败,刷新缓存版本的最近访问初始化文件,返回值是零。

2.读操作1:GetPrivateProfileString

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

DWORD GetPrivateProfileString(
	LPCTSTR lpAppName, //节名
    LPCTSTR lpKeyName, //键名
    LPCTSTR lpDefault, //默认值
    LPTSTR lpReturnedString, //读取的值
    DWORD nSize, //lpReturnedString缓冲区的大小
    LPCTSTR lpFileName, //INI文件名
)

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

3.读操作2:GetPrivateProfileInt

该函数用于从INI文件中获取整型数据。
该函数原型:
代码如下(示例):

UINT GetPrivateProfileInt(
	LPCTSTR lpAppName,//节名
    LPCTSTR lpKeyName, //键名
    INT nDefault, //默认值
    LPCTSTR lpFileName,//INI文件名
)

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

4.返回INI文件中的所有节名:GetPrivateProfileSectionNames

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

DWORD GetPrivateProfileSectionNames(
	LPTSTR lpszReturnBuffer, //接收节名的数据缓冲区
    DWORD nSize, //缓冲区大小
    LPCTSTR lpFileName,//INI文件
)

返回值:
返回值指定数量的字符复制到指定的缓冲,不包括终止null字符。
如果缓冲区没有达到足以包含所有相关的部分名称指定的初始化文件,返回值等于指定的长度nSize - 2.

5.获取指定节下的所有的键名和键值:GetPrivateProfileSection

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

DWORD GetPrivateProfileSection(
	LPCTSTR lpAppName, //节名
    LPTSTR lpReturnedString, //接收数据缓冲区
    DWORD nSize, //缓冲区大小
    LPCTSTR lpFileName, //INI文件
)

三.使用案例

示例程序如下:

#include<Windows.h>
void Test()
{
    LPCTSTR lpFileName = TEXT("D:\\wo.ini");
    //写入配置
    BOOL res = ::WritePrivateProfileString(TEXT("app"), TEXT("name"), TEXT("1"), lpFileName);
    //读配置
    WCHAR content[100];
    DWORD v = ::GetPrivateProfileString(TEXT("app"), TEXT("name"), TEXT(""), content, 100, lpFileName);
    //读数值
    DWORD resv = ::GetPrivateProfileInt(TEXT("app"), TEXT("name"), 0, lpFileName);
    //读取所有节名
    resv == ::GetPrivateProfileSectionNames(content, 100, lpFileName);
    //读取节下的所有键值
    resv = ::GetPrivateProfileSection(TEXT("app"), content, 100, lpFileName);
}
学新通

总结

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcagkf
系列文章
更多 icon
同类精品
更多 icon
继续加载