66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# readconf
|
|
|
|
Singleton for reading the configuration file required for your program.
|
|
|
|
The `settings.conf` file:
|
|
|
|
```conf
|
|
Such a line will not be read
|
|
value1 = This is the full value
|
|
value2 = "Take the value in quotation marks"
|
|
value3 = 'Or take in apostrophes'
|
|
value4 => You can also comment // Another separator and comment
|
|
value5 => 'So you can also comment' # Yeah!
|
|
value6 => 'And you can even do that!' ; He-he;)
|
|
value7 = 1234567890 # decimal value
|
|
value8 => 12345.67890 ; float value
|
|
value9 => You can use large margins
|
|
value10 = // But a line without a value will not be read
|
|
value11 = //path # not working
|
|
value12 = "//path" // nice way (or '//path')
|
|
```
|
|
|
|
Read `settings.conf` file:
|
|
|
|
```d
|
|
import readconf;
|
|
import std.stdio;
|
|
|
|
void main()
|
|
{
|
|
Config.file.read("./settings.conf");
|
|
|
|
foreach (key, param; Config.file.keys())
|
|
writefln("%s => %s", key, param);
|
|
|
|
int val7Int = Config.file.key("value7").toInt;
|
|
float val8Float = Config.file.key("value8").toFloat;
|
|
// Return default value as 0
|
|
int val8Int = Config.file.key("value8").toInt;
|
|
float val5Float = Config.file.key("value9").toFloat;
|
|
|
|
writefln(
|
|
"val7Int = %s; val8Float = %s; val8Int = %s; val5Float = %s;",
|
|
val7Int, val8Float, val8Int, val5Float
|
|
);
|
|
}
|
|
```
|
|
|
|
Result:
|
|
|
|
![matches.png](img/matches.png)
|
|
|
|
```
|
|
value1 => This is the full value
|
|
value2 => Take the value in quotation marks
|
|
value3 => Or take in apostrophes
|
|
value4 => You can also comment
|
|
value5 => So you can also comment
|
|
value6 => And you can even do that!
|
|
value7 => 1234567890
|
|
value8 => 12345.67890
|
|
value9 => You can use large margins
|
|
value12 => //path
|
|
val7Int = 1234567890; val8Float = 12345.7; val8Int = 0; val5Float = 0;
|
|
```
|