学习笔记之一读写配置文件(ini)

这篇博客详细介绍了如何在VC中操作INI配置文件,包括读取和写入参数、段落和注释。通过GetPrivateProfileString和WritePrivateProfileString函数,实现了对配置文件中字符串和整数的存取,提供了读取'姓名'段落中'name1'的值以及向'性别'段落中'student1'写入值的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/***********************配置文件结构*************************************/
/*      [姓名]                                                          */
/*	name1 = zhangsan						*/
/*	name2 = lisi							*/
/*	[性别]								*/
/*	student1 = girl							*/
/************************************************************************/
---取自网络
INI文件的格式很简单,最基本的三个要素是:parameters,sections和comments。

什么是parameters?

INI所包含的最基本的“元素”就是parameter;每一个parameter都有一个name和一个value,name和value是由等号“=”隔开。name在等号的左边。

如:

      name = value

什么是sections ?

所有的parameters都是以sections为单位结合在一起的。所有的section名称都是独占一行,并且sections名字都被方括号包围着([ and ])。在section声明后的所有parameters都是属于该section。对于一个section没有明显的结束标志符,一个section的开始就是上一个section的结束,或者是end of the file。Sections一般情况下不能被nested,当然特殊情况下也可以实现sections的嵌套。

section如下所示:

         [section]

 

什么是comments ?

在INI文件中注释语句是以分号“;”开始的。所有的所有的注释语句不管多长都是独占一行直到结束的。在分号和行结束符之间的所有内容都是被忽略的。

注释实例如下:;-----

读配置文件:
取字符串:
DWORD GetPrivateProfileString(
LPCTSTR lpAppName,----INI文件中的一个字段名,如“姓名”,“性别”
LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名,如“name1”
LPCTSTR lpDefaut ----------如果没有其前两个参数值,则将此值赋给变量
LPCTSTR lpString ---------是键值,也就是变量的值, 必须为LPCTSTR或CString类型
DWORD nSize ------接收缓冲区的大小
LPCTSTR lpFileName --------完整的INI文件路径名
)
取整数:
UINT GetPrivateProfileInt(
LPCTSTR lpAppName ------- INI文件中的一个字段名
LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名
INT nDefault-------如果前两个参数没有值,则将此值附给变量
LPCTSTR lpFileName --------完整的INI文件路径名
)

写配置文件:
bool WritePrivateProfileString(
LPCTSTR lpAppName ------- INI文件中的一个字段名
LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名
LPCTSTR lpString ---------是键值,也就是变量的值, 必须为LPCTSTR或CString类型
LPCTSTR lpFileName --------完整的INI文件路径名
)

举例:
	TCHAR	szPath[MAX_PATH+1] = {0};
	GetModuleFileName( NULL, szPath, MAX_PATH ); //获取exe路径
	(_tcsrchr( szPath, _T('\\')))[1] = 0;	//去除exe文件名,得到其所在文件夹路径
	CString str_url = szPath + _T("config.ini");	//配置文件路径

	//读配置文件
	CString csStr;
	//获取“[姓名]”下的“name1”
	GetPrivateProfileString( _T("姓名"), _T("name1"), _T("zhangsan"), csStr.GetBuffer(MAX_PATH), MAX_PATH, str_url.GetBuffer(0));

	//写配置文件
	CString csWr = _T("boy");
	//将“boy”赋值给[性别]下的"student1"
	WritePrivateProfileString( _T("性别"), _T("student1"), csWr.GetBuffer(0), str_url.GetBuffer(0) );









                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值