CIniFile






4.39/5 (13投票s)
2000年4月28日

480183

2783
一个易于在应用程序中实现 INI 设置文件的类。
引言
在每个我编写的程序中,我最终都会使用某种 INI 文件来保存从一次运行到下一次运行的设置。与其在每个程序中单独实现它,我终于写了这个类,CIniFile
。它设置和使用起来都很简单。
创建 CIniFile
对象后,调用成员函数 SetPath(CString newpath)
来设置 INI 文件的路径/文件名,以便从中读取和写入。
要将 INI 文件数据读取到类中,请调用 ReadFile()
。
要从类中检索数据,请使用 GetValue
或其重载函数之一。
//returns value of keyname/valuename as CString CString GetValue(CString keyname, CString valuename); //returns value of keyname/valuename as int int GetValueI(CString keyname, CString valuename); //returns value of keyname/valuename as double double GetValueF(CString keyname, CString valuename);
要设置类中的数据值,请调用 SetValue
或其重载函数之一。
bool SetValue(CString key, CString valuename, CString value, bool create = 1); bool SetValueI(CString key, CString valuename, int value, bool create = 1); bool SetValueF(CString key, CString valuename, double value, bool create = 1);
如果不想创建该键/值(如果它不存在),请将可选参数 create
设置为 false。
SetValue
在值成功存储时返回 TRUE
,否则返回 FALSE
。
要从类中删除一个值,请调用 DeleteValue(CString keyname, CString valuename)
。如果删除该值,此函数将返回 TRUE
,否则返回 FALSE
。
要从类中删除整个键,请调用 DeleteKey(CString keyname)
。如果删除该键,此函数将返回 TRUE
,否则返回 FALSE
。
要删除类中存储的所有数据,请调用 Reset()
。
其他有用的函数是 GetNumKeys()
,它返回 INI 文件中的键数,以及 GetNumValues(CString keyname)
,它返回存储在指定键中的值的数量。
最后,要将所有存储的数据写入指定的 INI 文件,请调用 WriteFile()
。
就是这样!很简单。
将评论发送至 cabadam@tamu.edu。
更新
- 2000 年 5 月 5 日
更新了源代码和演示文件。
- 2003 年 3 月 2 日
自从我上次查看这篇文章以来已经过了很长时间,但由于对该类的非 MFC 版本有很多兴趣,我决定将其上传到这里。由于 Shane Hill 重写的非 MFC 版本包含更多功能,我决定从这里删除原始 MFC 类。这意味着几件事。首先 - 文章顶部的演示图片是错误的。等号 (=) 符号周围没有空格。此外,即使该类包含更多功能,该类的基本操作在很大程度上保持不变。新功能包括枚举现有键和值以及将注释添加到 INI 文件。有关新增功能,请参阅文档完善的头文件。