Как разобрать конфигурационный файл с помощью erlang? - PullRequest
18 голосов
/ 08 мая 2011

Я разрабатываю одну программу с erlang, которая должна при запуске прочитать файл конфигурации, а затем загрузить данные конфигурации в базу данных.Первоначально, используя Ruby или C, я могу загрузить файл YAML или файл conf.Я хочу знать, в мире erlang, есть ли хороший способ загрузить файл конфигурации?спасибо!

Это файл стиля YAML, который мне нужно загрузить, и мне все равно стиль файла конфигурации

a:
  a1:
    a2: 1
    a3: 2
b:
  b1:
    b2: 3
    b3: 4

1 Ответ

32 голосов
/ 08 мая 2011

Если вы сохраняете данные конфигурации как термины Эрланга, вы можете использовать встроенную функцию file: consult / 1 для ее анализа.

Как вы структурируете свои данные, зависит от вас. Например, вы можете использовать проплисты:

{a, [{a1, [{a2, 1}, {a3, 2}]}]}.
{b, [{b1, [{b2, 3}, {b3, 4}]}]}.

Или кортежи со значениями ключей с ключами в виде списков атомов:

{[a, a1, a2], 1}.
{[a, a1, a3], 2}.
{[b, b1, b2], 3}.
{[b, b1, b4], 4}.

Или с ключами в виде строк / списков:

{"a.a1.a2", 1}.
{"a.a1.a3", 2}.
{"b.b1.b2", 3}.
{"b.b1.b4", 4}.

Или с ключами в качестве атомов:

{a.a1.a2, 1}.
{a.a1.a3, 2}.
{b.b1.b2, 3}.
{b.b1.b4, 4}.

И так далее. Это зависит от ваших данных и от того, как вы хотите получить к ним доступ.

...