[RFC] Ini parser
Jacob Carlborg
doob at me.com
Thu Feb 16 23:27:51 PST 2012
On 2012-02-16 21:50, Robik wrote:
> Greetings.
>
> Recently, I've been working on INI parser in D. The main goals were to
> keep code easy and well documented. Suggestions are really welcome(main
> reason of this thread) because it needs polishing and stuff.
>
> It provides simple interface for operating on parsed file, including
> useful features like section inheriting and variable lookups. Here is
> simple example taken from README with little modifications:
> import std.stdio;
> void main()
> {
> // Hard code the contents
> string c = "
> # defaults
> [def]
> name1:value1
> name2:value2
>
> ; override defaults
> [foo : def]
> name1=Name1 from foo. Lookup for def.name2: %name2%";
>
> // create parser instance
> auto iniParser = new IniParser();
>
> // Set ini structure details; can be ommited
> iniParser.commentChars = [';', '#'];
> iniParser.delimChars = ['=', ':'];
>
>
> // parse
> auto ini = iniParser.parse(c);
>
> // write foo.name1 value
> writeln(ini.getSection("foo")["name1"].value);
> }
Why the need for ".value"? It would guess because opIndex returns IniKey
which both contains the key and the value. I would sugest you add a
"alias this" pointing to "value". Something like this.
struct IniKey
{
string name;
string value;
alias value this;
}
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list