testing passed successfully

This commit is contained in:
Alexander Zhirov 2023-03-26 03:26:31 +03:00
parent 7351a94b9f
commit 275832514e
4 changed files with 60 additions and 42 deletions

View File

@ -16,27 +16,32 @@ import std.stdio;
void main()
{
Config.file.read("./settings.conf");
rc.read("./settings.conf");
foreach (key, param; Config.file.keys())
foreach (key, param; rc.sn.keys())
writefln("%s => %s", key, param);
writeln(Config.file.key("value1"));
writeln(rc.sn.key("value1"));
foreach (key, param; rc.sn("part2").keys())
writefln("%s => %s", key, param);
writeln(rc.sn("part2").key("value1"));
}
```
Result:
```
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
This is the full value
value1 => text without quotes
value2 => Yes!
value3 => value in apostrophes
value4 => 1000
value5 => 0.000
value7 => //path
value8 => "Hey!"
text without quotes
value1 => this value will be in the new section
value3 => good value!
this value will be in the new section
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -1,13 +1,23 @@
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')
The main section is set by default
value1=text without quotes
value2=>"value in quotation marks"
value3=>'value in apostrophes' ; and here is the first comment
value4 => 1000 // free space in spaces and tabs
value5 => 0.000 /* different form of commenting
value6 = // the string will not be read because the parameter value is missing
value7 = '' ; limiting empty characters will also not be taken into account
[part2] ; a new section!
value1 = this value will be in the new section
value 2 = 200 ; The parameter name is incorrect
value3 => good value! # and another way of commenting
[] ; Make the main section again!
value7 => '//path' # and now the value7 will be read!
value2 = Yes! /* We will also redefine the value2
value8 => '"Hey!"' # you can separate the values in quotation marks or apostrophes
[part3] // and another section
value1=>-2 ; so you can
value2=3// but it will not work to leave a comment
value3=>100 //you need space from the value by at least 1 character

View File

@ -4,28 +4,31 @@ unittest
{
rc.read("./tests/settings.conf");
assert(rc.sn.key("value1") == "This is the full value");
assert(rc.sn.key("value2") == "Take the value in quotation marks");
assert(rc.sn.key("value3") == "Or take in apostrophes");
assert(rc.sn.key("value4") == "You can also comment");
assert(rc.sn.key("value5") == "So you can also comment");
assert(rc.sn.key("value6") == "\"And you can even do that!\"");
assert(rc.sn.key("value7") == "1234567890");
assert(rc.sn.key("value8") == "12345.67890");
assert(rc.sn.key("value9") == "You can use large margins");
assert(rc.sn.key("value10").empty);
assert(rc.sn.key("value11").empty);
assert(rc.sn.key("value12") == "//path");
assert(rc.sn.key("value1") == "text without quotes");
assert(rc.sn.key("value2") == "Yes!");
assert(rc.sn.key("value3") == "value in apostrophes");
assert(rc.sn.key("value4") == "1000");
assert(rc.sn.key("value5") == "0.000");
assert(rc.sn.key("value7") == "//path");
assert(rc.sn.key("value8") == "\"Hey!\"");
assert(rc.sn("part2").key("value1") == "this value will be in the new section");
assert(rc.sn("part2").key("value3") == "good value!");
assert(rc.sn("part3").key("value1") == "-2");
assert(rc.sn("part3").key("value3") == "100");
}
// void main()
// {
// import std.stdio;
// Config.file.read("./tests/settings.conf");
// rc.read("./tests/settings.conf");
// foreach (key, param; Config.file.keys())
// foreach (key, param; rc.sn.keys())
// writefln("%s => %s", key, param);
// writeln(Config.file.key("value1"));
// writeln(rc.sn.key("value1"));
// foreach (key, param; rc.sn("part2").keys())
// writefln("%s => %s", key, param);
// writeln(rc.sn("part2").key("value1"));
// }