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