C++ini文件操作
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
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01