Синтаксис файла конфигурации - PullRequest
3 голосов
/ 08 сентября 2011

Я занимаюсь разработкой программного обеспечения, которое будет использовать файл конфигурации.Я не знаю много синтаксисов или форматов конфигурационных файлов.Вот два, которые я знаю:

(общий с .conf файлами)

[section]
key=value
#comment

или (общий с .ini)

key value
; comment

Мой интерес - это нечто разностороннееэто почти язык.Допустим,

[Default]
Start = 0
End = 10
Speed = 1

[Section 3-6]
Speed = 2

Это будет действовать как переопределение.Однако это не какое-то соглашение, о котором я знаю.Есть ли общий синтаксис, который учитывает это?

Ответы [ 2 ]

12 голосов
/ 28 мая 2015

С 2015 года xml больше не является стандартом де-факто.Вот варианты.

TOML

# This is a TOML document.

title = "TOML Example"

[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

[servers]

  # tabs / spaces ok but not required
  [servers.alpha]
  ip = "10.0.0.1"
  dc = "eqdc10"

YAML (небезопасно)

%YAML 1.2
---
YAML: YAML Ain't Markup Language

Projects:
  C/C++ Libraries:
  - libyaml       # "C" Fast YAML 1.1
  - Syck          # (dated) "C" YAML 1.0
  - yaml-cpp      # C++ YAML 1.2 implementation

CSON

# Comments!!!

greatDocumentaries: [
    'earthlings.com'
    'forksoverknives.com'
]

importantFacts:
    # Multi-Line Strings! Without Quote Escaping!
    emissions: '''
        Livestock and their byproducts account for at least 32,000 million tons of carbon dioxide (CO2) per year, or 51% of all worldwide greenhouse gas emissions.
        '''

JSON5 и Human JSON - гибкие суперсеты JSON

Файл свойств - используется Java-программами

0 голосов
/ 08 сентября 2011

Я бы предложил вам использовать формат xml. Это де-факто стандартный день недели.

Документ конфигурации может выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8">
<configuraton>
    <default>
        <start>0</start>
        <end>10</end>
        <speed>1</speed>
    </default>
    <section from="3" to="6">
        <speed>2</speed>
    </section>
</configuration>

Существует много библиотек для разбора таких файлов.

...