MFC读写ini配置文件(WritePrivateProfileString,GetPrivateProfileString,GetPrivateProfileInt)
来源:互联网 发布:隆多臂展体测数据 编辑:程序博客网 时间:2024/05/22 10:36
本博文主要总结用MFC配置ini文件的用法,全文分为三大部门。第一部分介绍三个核心函数功能和各个参数意义。第二部分给出一个应用实例的详细注释代码。第三部分给出了程序编译执行后的结果。
一、WritePrivateProfileString函数和GetPrivateProfileString函数功能和各个参数详细分析。
用MFC配置ini文件的核心函数有三个,分别为WritePrivateProfileString和GetPrivateProfileString和GetPrivateProfileInt。下面分别讲解这三个核心函数的功能和各个参数的意义。
1.1 WritePrivateProfileString函数
1.1.1函数功能:
将lpString(CString型)变量存入lpFileName(Cfg.ini)文件里面,按照lpAppName字段进行分类索引。
1.1.2各个参数详解:
BOOL WritePrivateProfileString(
LPCTSTRlpAppName,
LPCTSTRlpKeyName,
LPCTSTRlpString,
LPCTSTRlpFileName
);
//其中各参数的意义:
LPCTSTR lpAppName; //是INI文件中的一个字段名.
LPCTSTR lpKeyName;//是lpAppName下的一个键名,通俗讲就是变量名.
LPCTSTR lpString; //是键值, 也就是变量的值,不过必须为LPCTSTR型或CString型的.
LPCTSTR lpFileName;//是完整的INI文件名.
1.1.3调用
WritePrivateProfileString("StudentInfo1","身份证","44022520070001",".\\ConfigFile\\ConfigInit.ini");
1.2 GetPrivateProfileString函数
1.2.1函数功能:
将lpFileName(Cfg.ini)文件里面的lpKeyName (CString型)变量的值取出,存入lpReturnedString缓冲区(也是CString类型),按照lpAppName字段进行分类索引。
1.2.2各个参数详解:
DWORD GetPrivateProfileString(
LPCTSTRlpAppName,
LPCTSTRlpKeyName,
LPCTSTRlpDefault,
LPTSTRlpReturnedString,
DWORDnSize,
LPCTSTRlpFileName
);
//其中各参数的意义:
//前二个参数与 WritePrivateProfileString中的意义一样.
lpAppName; //是INI文件中的一个字段名.
lpKeyName;// 是lpAppName下的一个键名,通俗讲就是变量名.
lpDefault;// : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString;// : 接收INI文件中的值的CString对象,即目的缓存器.
nSize;// : 目的缓存器的大小.
lpFileName;// : 是完整的INI文件名.
1.2.3调用
GetPrivateProfileString("StudentInfo1","Name","赵钱孙", strName.GetBuffer(MAX_PATH),MAX_PATH,".\\ConfigFile\\ConfigInit.ini");
1.3 GetPrivateProfileInt函数
1.3.1函数功能:
将lpFileName(Cfg.ini)文件里面的lpKeyName (CString型)变量的值取出,存入lpReturnedString缓冲区(也是CString类型),按照lpAppName字段进行分类索引。
1.3.2各个参数详解:
UINT GetPrivateProfileInt(
LPCTSTRlpAppName,
LPCTSTRlpKeyName,
INTnDefault,
LPCTSTRlpFileName
);//其中各参数的意义:
//前二个参数与 WritePrivateProfileString中的意义一样.
LPCTSTR lpAppName; //是INI文件中的一个字段名.
LPCTSTR lpKeyName;//是lpAppName下的一个键名,通俗讲就是变量名.
INT nDefault; //如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
LPCTSTR lpFileName;//是完整的INI文件名.
1.3.3调用
GetPrivateProfileInt("StudentInfo2","Age", 1,".\\ConfigFile\\ConfigInit.ini");
二、调用实例
2.1创建一个MFC基本对话框工程,在对话框界面添加一个按钮函数,将按钮命名为【配置文件】,如下图所示:
图2.1
2.2双击【配置文件】按钮,在按钮事件处理函数OnBnClickedButtonConfig()中,添加如下代码(可直接复制粘贴)
//"StudentInfo1"表示字段 "身份证"表示字段中的成员变量 "44022520070309"表示"身份证"节点中的变量值 ".\\ConfigFile\\ConfigInit.ini"表示ini文件的存储目录
//ini文件可用txt文本打开,打开后的前几行内容如下:
//[StudentInfo]
//Name = 李四
//Age = 18
//身份证 = 44022520070309
//[StudentInfo1]
//Name = 李四
//Age = 18
//身份证 = 44022520070309
//注意:写入ini文件的内容,在同一个字段内,不能有相同的内容排列 比如[StudentInfo]字段下,"Name =李四"只有一个,要想跟"Name =张三"并存,就必须另开一个段或者用序号作为排列。如果是直接"Name =张三",则"Name =李四"会被覆盖,结果是只有"Name =张三"这个Name变量。
DeleteFile(".\\ConfigFile\\ConfigInit.ini");//删除"ConfigInit.ini"配置文件,然后下面的函数再创建一个新的,进行ConfigInit.ini文件的初始化
BOOLResult1 = WritePrivateProfileString("StudentInfo1","身份证","44022520070001",".\\ConfigFile\\ConfigInit.ini");
BOOLResult2 = WritePrivateProfileString("StudentInfo1","Name","张三",".\\ConfigFile\\ConfigInit.ini");
BOOLResult3 = WritePrivateProfileString("StudentInfo1","Age","25",".\\ConfigFile\\ConfigInit.ini");
BOOLResult4 = WritePrivateProfileString("StudentInfo2","身份证","44022520070002",".\\ConfigFile\\ConfigInit.ini");
BOOLResult5 = WritePrivateProfileString("StudentInfo2","Name","李四",".\\ConfigFile\\ConfigInit.ini");
BOOLResult6 = WritePrivateProfileString("StudentInfo2","Age","28",".\\ConfigFile\\ConfigInit.ini");
if(Result1&&Result2&&Result3)
{
//AfxMessageBox(_T("配置信息写入成功!"));
}
//读取ini配置文件中的信息,读CString变量
//"StudentInfo1"表示字段 "Age"表示字段中的成员变量 "赵钱孙"表示字段成员变量默认值,前提是前两个信息不存在 strName.GetBuffer(MAX_PATH)表示缓冲区,存储CString内容 MAX_PATH表示缓冲区最大存储空间 ".\\ConfigFile\\ConfigInit.ini"表示存储目录
//程序执行后,strName中的值为"张三"
CStringstrName;
GetPrivateProfileString("StudentInfo1","Name","赵钱孙", strName.GetBuffer(MAX_PATH),MAX_PATH,".\\ConfigFile\\ConfigInit.ini");
//读取ini配置文件中的信息,读int变量
intResult = GetPrivateProfileInt("StudentInfo2","Age", 1,".\\ConfigFile\\ConfigInit.ini");
三、程序编译和执行后的结果,如下图所示:
图3.1 自动生成一个ConfigInit.ini文件
图3.2 写入ini文件的内容
图3.3 从ini文件读出的内容
图3.3中的结果可以从图3.2中可以看出,strName读取字段"StudentInfo1"中变量 "Name"的值为"张三",Result读取字段"StudentInfo2"中变量 "Age"的值为28。
参考内容:
http://blog.csdn.net/aaronalan/article/details/6144393
http://bbs.csdn.net/topics/30394456
- MFC读写ini配置文件(WritePrivateProfileString,GetPrivateProfileString,GetPrivateProfileInt)
- 利用GetPrivateProfileString/WritePrivateProfileString读写配置文件(.ini)
- C++读写ini配置文件GetPrivateProfileString()&WritePrivateProfileString()
- WritePrivateProfileString和GetPrivateProfileString读写ini配置文件
- 利用WritePrivateProfileString和GetPrivateProfileString读写配置文件.ini
- c++配置文件ini---GetPrivateProfileString(...)\WritePrivateProfileString(...)
- VB.net GetPrivateProfileString WritePrivateProfileString 读写INI
- WritePrivateProfileString等读写.ini配置文件
- WritePrivateProfileString等读写.ini配置文件
- WritePrivateProfileString等读写.ini配置文件
- WritePrivateProfileString等读写.ini配置文件
- WritePrivateProfileString等读写.ini配置文件 .
- WritePrivateProfileString等读写.ini配置文件
- WritePrivateProfileString等读写.ini配置文件
- 写入配置的函数WritePrivateProfileString和读取配置文件的函数GetPrivateProfileInt和GetPrivateProfileString
- C 语言实现读配置文件(.ini)函数,替代GetPrivateProfileString,WritePrivateProfileString
- C++(9):GetPrivateProfileString+WritePrivateProfileString->ini文件键值对操作
- GetPrivateProfileString &&WritePrivateProfileString 调用系统读写
- 第七章lx
- axios post提交formdata
- thinking in java
- 图解正向代理、反向代理、透明代理
- 开区间[L, R]中的整数L,R;在此区间中所有质数的个数n
- MFC读写ini配置文件(WritePrivateProfileString,GetPrivateProfileString,GetPrivateProfileInt)
- UNPv13:#附录A#IPv4、IPv6、ICMPv4和ICMPv6
- 博客已迁移到github:https://jeremieastray.github.io/
- bug注意点
- scala 中的val 、 var 、def
- 介绍和安装 zookeeper
- SQL中的case when then else end用法
- Selenium入门记录_002_通过网页元素选取和操作实现登录操作
- 大数据相关知识入门