From 4461987947b5fed5b407befd47f8bab86c5d1634 Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 5 May 2022 22:32:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20cfg.d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ cfg.d | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 README.md create mode 100644 cfg.d diff --git a/README.md b/README.md new file mode 100644 index 0000000..67d646b --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Наработки D + +**Содержит модули:** +- [cfg.d](cdf.d) - чтение конфигурационного файла в формате `Параметр = Значение` \ No newline at end of file diff --git a/cfg.d b/cfg.d new file mode 100644 index 0000000..bd3a6f0 --- /dev/null +++ b/cfg.d @@ -0,0 +1,24 @@ +module azh.cfg; + +import std.stdio; +import std.regex; + +string[string] readConfigFile(string path) +{ + auto file = File(path, "r"); + string[string] properties; + auto p_property = regex(r"^(\w+) *= *(.+)$", "m"); + while (!file.eof()) + { + string line = file.readln(); + auto m = matchFirst(line, p_property); + if (m) + { + auto property = m[1]; + auto value = m[2]; + properties[property] = value; + } + } + file.close(); + return properties; +}