我是靠谱客的博主 壮观战斗机,最近开发中收集的这篇文章主要介绍MFC 读取INI文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是ini文件?

initialization File,即为初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置。或者作为项目中的配置文件,为整个项目所共用。

文件格式为 节、键、值。其中节为[Section name], 参数为 key(键)=value(值)。

ini文件中注解使用分号表示(;),在分号后面的文字,直到该行结尾都全部为注解。

[Section Name]用来表示一个段落,INI文件可能是项目中共用的,所以使用[Section Name]段名来区分不同用途的参数区。key就用来表示参数名,value表示对应的值。

ini文件读

1、从系统的win.ini文件中读取信息

(1) 读取字符串

DWORD GetProfileString(

LPCTSTR lpAppName, // 节名【不区分大小写】

LPCTSTR lpKeyName, // 键名,读取该键的值【不区分大小写

LPCTSTR lpDefault, // 若指定的键不存在,该值作为读取的默认值

LPTSTR lpReturnedString, // 一个指向缓冲区的指针,接收读取的字符串

DWORD nSize // 指定lpReturnedString指向的缓冲区的大小

)

如:

CString str;

::GetProfileString("Test","id","Error",str.GetBuffer(20),20);

(2) 读取整数

UINT GetProfileInt(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

INT nDefault // 若指定的键名不存在,该值作为读取的默认值

)

2 从自己的ini文件中读取信息

函数原型

DWORD GetPrivateProfileString(string lpszSection,string lpszKey,string lpszDefault, lpszReturnBuffer, cchReturnBuffer, lpszFile)

GetPrivateProfileString("DBInfo","IP","",IP.GetBuffer(MAX_PATH),MAX_PATH,iniFilePath);【测过】

CString IP, iniFilePath.

GetPrivateProfileString(Section name,key,"",key.GetBuffer(MAX_PATH),MAX_PATH,ini文件路径+文件名);

其中第一个参数为段名,第二个参数为参数名称,第三个参数为没找到key返回的默认值,第四个参数为指定一个字串缓冲区,第五个参数为指定装载到lpReturnedString缓冲区的最大字符数量,第六个参数为初始化文件的名字,如没有指定一个完整路径名,windows就在Windows目录中查找文件。

__inline DWORD GetPrivateProfileString(

LPCTSTR lpAppName,

LPCTSTR lpKeyName,

LPCTSTR lpDefault,

LPTSTR lpReturnedString,

DWORD nSize,

LPCTSTR lpFileName

)

DWORD GetPrivateProfileInt (string lpszSection,string lpszKey,long lpszDefault, lpszFile) 为初始化文件中指定的条目获取一个整数值,参数列表跟上文取String一致,而第三个参数是如果找不到则返回一个默认的long类型的值。

特别注意的是 如果找到的数字不是一个合法的整数,函数会返回其中合法的一部分。比如“xyz=55zz”这个条目,函数返回55。

UINT GetPrivateProfileInt(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
INT nDefault,
LPCTSTR lpFileName
);

写INI文件

1. 把信息写入系统的win.ini文件

BOOL WriteProfileString(

LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串

LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节

LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键

)

2. 把信息写入自己定义的.ini文件

BOOL WritePrivateProfileString(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

LPCTSTR lpString, // 同上

LPCTSTR lpFileName // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对

//路径,否则需要给出绝度路径。

)

如:

::WriteProfileString("Test","id","xym");

//在win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym

::WritePrivateProfileString("Test","id","xym","d:\vc\Ex1\ex1.ini");

//在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym

//若Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为:

::WritePrivateProfileString("Test","id","xym",".\ex1.ini");

需要注意的是,C系列的语言中,转义字符'\'表示反斜线''。另外,当使用相对路径时,\前的.号不能丢掉了。


最后

以上就是壮观战斗机为你收集整理的MFC 读取INI文件的全部内容,希望文章能够帮你解决MFC 读取INI文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部