Добавлен модуль cfg_oneline.d
This commit is contained in:
parent
4461987947
commit
20b2f6c463
|
@ -1,4 +1,5 @@
|
|||
# Наработки D
|
||||
|
||||
**Содержит модули:**
|
||||
- [cfg.d](cdf.d) - чтение конфигурационного файла в формате `Параметр = Значение`
|
||||
- [cfg.d](cfg.d) - чтение конфигурационного файла в формате `Параметр = Значение`
|
||||
- [cfg_oneline.d](cfg_oneline.d) (тест) - чтение конфигурационного файла в формате `Параметр = Значение`
|
|
@ -0,0 +1,27 @@
|
|||
module azh.cfg_oneline;
|
||||
|
||||
import std.regex;
|
||||
import std.stdio;
|
||||
import std.algorithm;
|
||||
import std.array;
|
||||
import std.typecons;
|
||||
import std.functional;
|
||||
|
||||
/**
|
||||
* Тестовая функция
|
||||
* Params:
|
||||
* path = путь к файлу конфигурации
|
||||
* Returns: ассоциативный массив ['Параметр' => 'Значение']
|
||||
*/
|
||||
string[string] readConfigFile(string path)
|
||||
{
|
||||
auto p_property = regex(r"^ *(\w+) *= *(.+) *$", "r");
|
||||
const properties = File(path)
|
||||
.byLineCopy
|
||||
.map!(line => matchFirst(line, p_property))
|
||||
.filter!(m => !m.empty) // OR: .filter!(not!empty)
|
||||
.map!(m => tuple(m[1], m[2]))
|
||||
.assocArray;
|
||||
|
||||
return properties;
|
||||
}
|
Reference in New Issue