yidabu 2007-12-28 20:17
D语言dwin库系列-用ini文件来保存软件配置
D语言dwin库系列-用ini文件来保存软件配置
D programming language现有几个读写ini格式文件的代码:
1 DFL作者写和ini类
[url]http://www.dprogramming.com/ini.php[/url]
缺点是不支持多行值, 不支持Tango.
2 Tango库中的tango.text.Properties类
缺点是不支持多行值,不支持section.
3 Destructionator写的ini操作function
[url]http://arsdnet.net/code/Ini.html[/url]
支持多行值,不支持Tango.
D语言中国社区( [url]http://www.d-programming-language-china.org/[/url] )开发的DWin库参考上述2,3代码,提供了更为方便的ini操作free function, 具体代码在:
dwin.text.Properties中.
ini文件的加载,可以用string, 也可以FilePath[code] char[] sIni = ...
auto ini = iniLoad(sIni);
//或者这样
auto ini = iniLoad(FilePath(r"D:\config.ini"));
char[] value = ini["section"]["key"];[/code]ini文件修改后,要写回文件,可以这样:[code] iniSave(r"D:\config.ini", ini);
//或者
iniSave(FilePath(r"D:\config.ini"), ini);[/code]如果是多行值,就要指定值开始符和结束符,或者使用默认值.
比如D:\config.ini的内容是这样的:[code] [url]
bbs = http://bbs.d-programming-language-china.org/forum-10-1.html
DChina = http://www.d-programming-language-china.org/
[about]
dchina = {{{
D programming language in China.
Has Many articles about D.
}}} [/code]用类似下面代码来读取和保存ini配置文件,注意,多行值开始符和结束符都独占一行:[code] auto path = r"D:\config.ini";
auto ini = iniLoad(FilePath(path), "{{{", "}}}");
Cout(ini["about"]["dchina"]).newline;
ini["url"]["bbs"] = "www.d-programming-language-china.org/forum-10-1.html";
ini["url"]["DChina"] = "www.d-programming-language-china.org/";
iniSave(ini, "{{{", "}}}"); [/code]20071228