INI
введение
- INI - это конфигурационный файл с фиксированным стандартным форматом
- Базовыми элементами являются ключи или свойства
- Каждый ключ состоит из
имени
изначения
, разделенных знаком равенства (=
) Имя ключа
отображается слева от знака равенства- Знак равенства и точка с запятой являются
резервными
символами - Метод конфигурирования INI заимствован из операционной системы MS-DOS
В настоящее время является неофициальным стандартом для многих конфигураций, в других операционных системах в качестве суффикса может использоваться .conf
или .cfg
.
Пример
; Вот комментарии
[owner]
name=John Doe
организация=Acme Products
[база данных]
; Вот комментарии
сервер=192.0.2.42
порт=143
файл="acme payroll.dat"
[section.subsection]
foo = bar
Комментарии
комментарий (;
)
; Это текст комментария, который будет проигнорирован
комментарий (#
)
# Это текст комментария, ⚠️ Некоторые компиляторы поддерживают его.
Комментарии после строки (;
,#
) (не стандарт)
var = a ; это встроенный комментарий
foo = bar # это еще один встроенный комментарий
В некоторых случаях комментарии должны появляться в строках отдельно
Разделы
- Название отображается в отдельной строке
- Имена заключаются в квадратные скобки
[
и]
. - Нет явного разделителя
конец раздела
. - Заканчивается на следующем объявлении
раздела
или в конце файла - Имена секций и атрибутов не чувствительны к регистру
[section]
ключ1 = a
ключ2 = b
То же самое, что и JSON
ниже 👇
{
"section": {
"key1": "a",
"key2": "b"
}
}
Вложенность (поддерживается некоторыми парсерами)
[section]
домен = cheatsheets.zip
[section.subsection]
foo = bar
То же самое, что и JSON
ниже 👇
{
"section": {
"domain": "cheatsheets.zip".
"subsection": {
"foo": "bar"
}
}
}
Гнездо к предыдущему разделу (сокращение)
[section]
домен = cheatsheets.zip
[.subsection]
foo = bar
Escape символ
последовательность | значение |
---|---|
\\\ |
\ (одиночная обратная косая черта, управляющий символ) |
\' |
апостроф |
\" |
двойные кавычки |
\0 |
нулевой символ |
\a |
ringtone/alert/sound |
\b |
Backspace, [символ белла] для некоторых приложений (https://en.wikipedia.org/wiki/Bell_character) |
\t |
символ табуляции |
\r |
возврат каретки |
\n |
новая строка |
\; |
точка с запятой |
\# |
знак числа |
\= |
знак равенства |
\: |
двоеточие |
\x???? |
символ Юникода для шестнадцатеричной кодовой точки, соответствующей ???? |
Массив
[section]
домен = cheatsheets.zip
array[]=первое значение
array[]=второе значение
То же самое, что и JSON
ниже 👇
{
"section": {
"domain": "cheatsheets.zip",
"array": [
"first value",
"второе значение"
]
}
}
Интерпретатор
- @go-ini/ini (golang)
- @npm/ini (nodejs)
- @zonyitoo/rust-ini (rust)
- @rxi/ini (c)
- @pulzed/mINI (c++)
- @rickyah/ini-parser (c#)
- @Enichan/Ini (c#)
См. также
- Конфигурация INI-файла(wikipedia.org)