发新话题
打印

D语言dwin库系列-用ini文件来保存软件配置

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

TOP

发新话题