INI-файлы
Расширение имени файла |
.Этот |
---|---|
Тип интернет-СМИ |
текст/обычный, приложение/textedit, zz-приложение/zz-winassoc-ini |
Тип формата | Файл инициализации/конфигурации |
Файл INI — это файл конфигурации для компьютерного программного обеспечения , который состоит из текстового содержимого со структурой и синтаксисом, включающим пары ключ-значение для свойств, и разделов, которые упорядочивают свойства. [1] Название этих файлов конфигурации происходит от расширения имени файла INI , обозначающего инициализацию , используемого в операционной системе MS-DOS , которая популяризировала этот метод настройки программного обеспечения. Этот формат стал неофициальным стандартом во многих контекстах конфигурации, но многие приложения в других операционных системах используют другие расширения имен файлов, такие как conf и cfg . [2]
История
[ редактировать ]Основным механизмом настройки программного обеспечения в Windows изначально был формат текстового файла, который содержал текстовые строки с одной парой ключ-значение в каждой строке, организованные в разделы. Этот формат использовался для компонентов операционной системы, таких как драйверы устройств, шрифты и средства запуска при запуске. Файлы INI также обычно использовались приложениями для хранения индивидуальных настроек. [3]
Формат поддерживался на 16-битных платформах Microsoft Windows вплоть до Windows 3.1x . Начиная с Windows 95, Microsoft отдавала предпочтение использованию реестра Windows и начала отговаривать разработчиков от использования INI-файлов для настройки. Все последующие версии Windows использовали реестр Windows для настройки системы, но приложения, созданные на .NET Framework, используют специальные XML .config файлы . Функции файла инициализации по-прежнему доступны в Windows, и разработчики могут их использовать.
Помимо программного обеспечения Windows, этот формат файла для конфигурации может использовать программное обеспечение, не зависящее от платформы. Некоторые Unix-подобные файлы конфигурации также используют аналогичный формат. INI удобен для чтения и прост в анализе, поэтому это удобный формат для файлов конфигурации, не требующий особой сложности.
Распространенность
[ редактировать ]Далее следует неисчерпывающий список мест, в которых встречаются файлы INI.
Desktop.ini
файлы по-прежнему используются в Windows для настройки свойств каталогов, например, для указания значка папки. [4] [5]- PHP
php.ini
файл использует формат INI. [6] [7] - Git 's
.git/config
файл написан в формате INI. [8] - freedesktop.org
*.desktop
записи записываются в формате INI. [9] - системный
*.service
файлы конфигурации устройства записываются в формате INI. [10] - Netatalk 's
afp.conf
Файл написан на языке конфигурации в стиле INI. [11] - Пакмана
pacman.conf
файл записан в INI. [12]
Пример
[ редактировать ]В следующем примере файла есть два раздела: один для владельца программного обеспечения и один для подключения к базе данных расчета заработной платы. В комментариях указывается имя последнего человека, изменившего файл, и причина изменения.
; last modified 1 April 2001 by John Doe
[owner]
name = John Doe
organization = Acme Widgets Inc.
[database]
; use IP address in case network name resolution is not working
server = 192.0.2.62
port = 143
file = "payroll.dat"
Формат
[ редактировать ]В более широком смысле INI — это неформальный формат, который хорошо подходит для специальной реализации, оставаясь при этом настраиваемым человеком. Следовательно, существует множество различных спецификаций (иногда реализация синтаксического анализатора является единственной когда-либо написанной спецификацией), называемых диалектами INI .
Хотя интерпретация INI во многом зависит от личного вкуса и вычислительной среды (например: необходимость в данных с точностью до пробелов; необходимость в информации о типе поля; Windows предпочитает свертывание регистра, Unix предпочитает чувствительность к регистру; #
- разграниченные комментарии заимствованы из сценариев Unix), что делает INI склонным к распространению, существует жесткое ядро, с которым обычно ассоциируется INI : текстовые и строковые, пробелы удаляются, пустые строки и строки комментариев (например, ; registers to system-wide mailcap
, # workaround for d5cb328
) игнорируются, квадратные скобки обозначают разделы (например, [Unit]
, [branch "master"]
), данные в виде пар ключ-значение, часто обозначаемых знаком равенства (ASCII 0x3D) (например, IconFile=Folder.ico
, time machine = yes
).
Существуют попытки создать парсеры, способные поддерживать как можно больше диалектов. [13] и в своей самой сложной интерпретации формат INI способен выражать произвольные S-выражения , что делает его эквивалентным стандартизированным форматам, таким как XML или JSON , хотя и с синтаксисом, который не высечен в камне и для некоторых может показаться более удобным.
Поскольку формат файла INI жестко не определен, многие анализаторы поддерживают функции, выходящие за рамки общего ядра. Реализованная поддержка очень нестабильна.
Пары ключ-значение
[ редактировать ]Данные в INI хранятся в парах ключ-значение, называемых ключом или свойством . Таким образом, ключ может относиться либо ко всей паре ключ-значение, либо только к ее ключу. Значение также называется именем свойства . В текстовом представлении пара ключ-значение представлена либо линией, либо мультистркой, где начало значения обозначается разделителем , чаще всего знаком равенства ( =
, ASCII 0x3D), но иногда и двоеточие ( :
, ASCII 0x3A) или пробелы (иногда используемые в мире GNU). [13] ). Ключ ключа отображается слева от разделителя, часто непустой и не должен содержать разделитель. Некоторые варианты допускают escape-последовательности в значении.
В реализации Windows знак равенства и точка с запятой являются зарезервированными символами и не могут присутствовать в ключе. Любые пробелы вокруг ключа удаляются анализатором. Значение может содержать любой символ (в стиле Windows разделитель не окружен пробелами: например IconFile=Folder.ico
).
Пары ключ-значение могут выглядеть так:
key=key=v
name =value
sem=;
semver=v5822.433.2
Разделы
[ редактировать ]Пары ключ-значение могут быть сгруппированы в разделе . Некоторые диалекты INI требуют, чтобы каждая пара ключ-значение находилась в разделе, некоторые допускают так называемые глобальные свойства . [14] Когда пары ключ-значение сгруппированы, имя раздела отображается на отдельной строке и заключено в квадратные скобки ( [
, ASCII 0x5B и ]
, ASCII 0x5D) и применяется ко всем парам ключ-значение в последующих строках, пока не будет объявлен другой раздел. Не существует явного разделителя «конца раздела» (например, в XML </tag>
. Таким образом, разделы синтаксически не могут быть произвольно вложены. При необходимости вложение может быть реализовано путем выравнивания иерархии и объединения с помощью специального символа-разделителя внутри имени раздела (часто .
, ASCII 0x2E). Часто поддерживается один уровень вложенности, называемый подразделами .
Пример INI-документа, использующего вложенные разделы:
[project]
name = orchard rental service (with app)
target region = "Bay Area"
; TODO: advertise vacant positions
legal team = (vacant)
[fruit "Apple"]
trademark issues = foreseeable
taste = known
[fruit.Date]
taste = novel
Trademark Issues="truly unlikely"
[fruit "Raspberry"]
anticipated problems ="logistics (fragile fruit)"
Trademark Issues=\
possible
[fruit.raspberry.proponents.fred]
date = 2021-11-23, 08:54 +0900
comment = "I like red fruit."
[fruit "Date/proponents/alfred"]
comment: Why, \
\
\
I would buy dates.
# folding: Is "\\\\\nn" interpreted as "\\n" or "\n"?
# Or does "\\\\" prevent folding?
editor =My name may contain a \\
newline.
Иерархия (вложенность разделов)
[ редактировать ]Некоторые парсеры допускают вложение разделов, используя точки в качестве разделителей пути:
[section]
domain = example.com
[section.subsection]
foo = bar
В некоторых случаях также поддерживается относительная вложенность, где точка в начале обозначает вложенность в предыдущий раздел: [13]
[section]
domain = example.com
[.subsection]
foo = bar
Исторически существовали и способы выражения вложенности, альтернативные точке (например, файл драйвера IBM для Microsoft Windows). devlist.ini
, в котором обратная косая черта использовалась в качестве разделителя вложенности в виде [A\B\C]
; или Microsoft Visual Studio AEMANAGR.INI
файл, в котором использовался совершенно другой синтаксис в виде [A]
и B,C,P = V
). Некоторые парсеры вообще не предлагали поддержки вложенности и не учитывали иерархию, но вложенность все же можно было частично эмулировать, используя тот факт, что [A.B.C]
представляет собой уникальный идентификатор.
Чувствительность к регистру
[ редактировать ]Имена разделов и свойств в Windows нечувствительны к регистру . [15] Большинство интерпретаций INI в стиле Unix вообще запрещают свертывание регистра, хотя свертывание регистра для имени раздела [16] или ключ [17] иногда разрешается.
Комментарии
[ редактировать ]Строка с последовательными пробелами в конце, за которыми следует точка с запятой ( ;
, ASCII 0x3E) указывает на комментарий . Некоторые диалекты INI, кроме того, допускают использование числового знака ( #
, ASCII 0x23) для обозначения комментария, отражающего комментарии оболочки Unix . Некоторые диалекты INI, но не все, допускают комментарий к строке пары ключ-значение или строке раздела (называемый встроенным комментарием ), где некоторые требуют пробела, отделяющего значение или закрывающую скобку раздела от комментария. Тем не менее, в некоторых диалектах числовой знак может быть включен в имя ключа и игнорироваться как таковой. Строки комментариев предназначены для игнорирования анализатором.
#! /bin/convert-ini-to-perl | perl | ssh wikipedia.org upload --sanitise=no
; Ambiguous without further knowledge of the INI dialect:
; is the value "live" or "live # dangerously"?
I like to = live # dangerously
#var = a
var = a ; This is an inline comment
foo = bar # This is another inline comment
В WinAPI диалекте GetPrivateProfileString комментарии должны появляться в строках сами по себе.
Порядок разделов и свойств
[ редактировать ]Порядок свойств в разделе и порядок разделов в файле не имеют значения.
Повторяющиеся имена
[ редактировать ]Большинство реализаций поддерживают наличие в разделе только одного свойства с заданным именем. Второе появление имени свойства может вызвать прерывание , оно может быть проигнорировано (и значение отброшено) или может переопределить первое появление (при этом первое значение будет отброшено). Некоторые программы используют повторяющиеся имена свойств для реализации многозначных свойств.
Интерпретация нескольких объявлений разделов с одинаковым именем также различается. В некоторых реализациях повторяющиеся разделы просто объединяют свои свойства, как если бы они находились рядом. Другие могут прервать работу или проигнорировать некоторые аспекты файла INI.
Указанные значения
[ редактировать ]Некоторые реализации позволяют заключать значения в кавычки, обычно с использованием двойных кавычек и/или апострофов . Это позволяет явно объявлять пробелы и/или заключать в кавычки специальные символы (равно, точку с запятой и т. д.). Стандартная функция Windows GetPrivateProfileString поддерживает это и удаляет кавычки, окружающие значения.
Продолжение линии
[ редактировать ]Эмулируя синтаксис C , некоторые диалекты допускают свертывание строк с помощью обратной косой черты ( \
, ASCII 0x5C) в качестве последнего символа в строке. [18] В таком продолжении строки обратная косая черта, за которой сразу следует EOL (конец строки), приводит к отбрасыванию обратной косой черты и разрыва строки, преобразуя строки документа в логические строки .
Escape-персонажи
[ редактировать ]Некоторые диалекты предлагают различную поддержку экранирования символов , обычно с помощью символа обратной косой черты ( \
, ASCII 0x5C) в качестве метасимвола и эмуляции синтаксиса C. [19]
Неразумно слепо интерпретировать escape-последовательности, поскольку некоторые спецификации явно отключают метасимволы для общих escape-последовательностей. [20] [21]
Последовательность | Значение |
---|---|
\\
|
\ (одиночная обратная косая черта , экранирующая escape-символ) |
\'
|
Апостроф |
\"
|
Двойные кавычки |
\0
|
Нулевой символ |
\a
|
Звонок/оповещение/звуковой сигнал |
\b
|
Backspace , символ колокольчика для некоторых приложений. |
\t
|
Символ табуляции |
\r
|
Возврат каретки |
\n
|
Перевод строки |
\;
|
Точка с запятой |
\#
|
Знак номера |
\=
|
Знак равенства |
\:
|
Двоеточие |
\xhhhh
|
Юникода Символ с кодовой точкой 0xhhhh, закодированный либо в UTF-8, либо в локальной кодировке. |
Доступ к INI-файлам
[ редактировать ]В Windows Profile API — это программный интерфейс, используемый для чтения и записи настроек классической Windows. .ini
файлы. Например, функция GetPrivateProfileString извлекает строку из указанного раздела файла инициализации. («Частный» профиль противопоставляется GetProfileString
, который извлекается из WIN.INI .)
Следующий пример программы на C демонстрирует чтение значений свойств из приведенного выше примера INI-файла (пусть имя файла конфигурации будет dbsettings.ini
):
#include <windows.h>
int main(int argc, _TCHAR *argv[])
{
_TCHAR dbserver[1000];
int dbport;
GetPrivateProfileString("database", "server", "127.0.0.1", dbserver, sizeof(dbserver) / sizeof(dbserver[0]), ".\\dbsettings.ini");
dbport = GetPrivateProfileInt("database", "port", 143, ".\\dbsettings.ini");
// N.B. WritePrivateProfileInt() does not exist, only WritePrivateProfileString()
return 0;
}
Третий параметр GetPrivateProfileString
функция является значением по умолчанию, которые "127.0.0.1"
и 143
соответственно в двух вызовах функций выше. Если аргумент, указанный для этого параметра, равен NULL
, по умолчанию — пустая строка, ""
.
В Unix существует множество различных библиотек конфигурации для доступа к файлам INI. Зачастую они уже включены в фреймворки и наборы инструментов. Примеры анализаторов INI для Unix включают GLib , iniparser и libconfini .
Сравнение парсеров INI
[ редактировать ]Имя | Поддержка разделов | Поддержка вложенности разделов | Отключено распознавание входа [22] | Многострочная поддержка [23] | Типы значений | Поддержка чтения/записи | Платформа | Лицензия | Язык программирования | Последняя версия выпуска |
---|---|---|---|---|---|---|---|---|---|---|
КонфигПарсер Python [24] [25] | Да | Да | Нет | Нестандартный [26] | Логическое значение , число , строка | Чтение + запись | *BSD , Linux , MacOS , Windows | ПСФЛ | C (реализация), Python (использование) | 3.9.7 [27] |
GLib [28] | Да | Да | Нет | Нет | Логическое значение , число , строка , массив | Чтение + запись | *BSD , Linux , MacOS , Windows | LGPL | С | 2.66.7 (11 февраля 2021 г [±] [29] | )
ini-файл [31] | Да | Нет | Нет | Нет | Логическое значение , число , строка | Чтение + запись | *BSD , Linux , MacOS , Windows | Апач | Идти | 1.2.0 [32] |
другие [33] | Да | Нет | Нет | Нестандартный [34] | Логическое значение , число , строка | Читать | *BSD , Linux , MacOS , Windows | БСД | С | 53 [35] |
инипарсинг [36] | Да | Нет | Нет | Да | Логическое значение , число , строка | Чтение + запись | *BSD , Linux , MacOS , Windows | С | С | 4.2.4 [37] |
Ява (через java.util.Properties ) [38]
|
Нет | Нет | Нет | Да | Нить | Чтение + запись | Независимость от платформы | Двойная лицензия: GPL версии 2 с исключением пути к классам, [39] и собственная лицензия. [40] | C (реализация), Java (использование) | 22.0.1 (19 апреля 2024 г [±] 21.0.0 LTS (19 сентября 2023 г ) [±] | )
библиотека libconfini [43] | Да | Да | Да | Да | Логическое значение , число , строка , массив | Читать | *BSD , Linux , MacOS , Windows | лицензия GPL | С | 1.16.2 [44] |
PHP (через parse_ini_file() ) [45]
|
Да | Да | Да | Нет | Число , Строка , Нуль | Читать | Linux , MacOS , Windows | Лицензия PHP v3.01 [46] | C (реализация), PHP (использование) | 8.3.9 [47] (4 июля 2024 г ) |
PyINI [48] | Да | Нет | Да | Да | Логическое значение , число , строка | Чтение + запись | Независимость от платформы | лицензия GPL | Питон | 1.0 [49] |
python-ini [50] | Да | Нет | Нет | Да | Логическое значение , число , строка , ноль | Чтение + запись | Независимость от платформы | БСД | Питон | 1.1.0 |
RudeConfig [51] | Да | Нет | Нет | Нет | Логическое значение , число , строка | Чтение + запись | Линукс , Винда | лицензия GPL | С++ | Снято с производства – последняя версия 5.0.5, выпущена в ноябре 2009 г. [52] |
Windows API | Да | Нет | Нет | Нет | Число , Строка , Структура | Чтение + запись (неразрушающий) | Окна | Собственный | С | 23H2 (10.0.22631.3958) (25 июля 2024 г [53] ) [±] |
Wine (реализация Windows API ) | Да | Нет | Нет | Нет | Число , Строка , Структура | Чтение + запись (неразрушающий) | Linux , MacOS , Windows | LGPL | С | 9.0 [54] 16 января 2024 г |
Конфигпарсер Rust [55] | Да | Нет | Нет | Нет | Логическое значение , число , строка | Чтение + запись | *BSD , Linux , MacOS , Windows | MIT или LGPL v3.0+ | Ржавчина | 3.0.2 [55] 11 сентября 2022 г.; 3 месяца назад |
Java-этот-парсер [56] | Да | Нет | Да | Да | Логическое значение , число , строка | Чтение + запись | Независимость от платформы | Апач | Ява | 1.4 [55] 29 декабря 2022 г.; 3 дня назад |
Имя | Поддержка разделов | Поддержка вложенности разделов | Отключено распознавание входа | Многострочная поддержка | Типы значений | Поддержка чтения/записи | Платформа | Лицензия | Язык программирования | Последняя версия выпуска |
Сопоставление файлов
[ редактировать ]Сопоставление файла инициализации создает сопоставление между INI-файлом и реестром Windows . [57] [58] Он был представлен в Windows NT и Windows 95 как способ перехода от хранения настроек к классической версии. .ini
файлы в новый реестр. Сопоставление файлов перехватывает вызовы Profile API и, используя настройки из раздела реестра IniFileMapping , направляет операции чтения и записи в соответствующие места реестра.
Используя приведенный ниже пример, можно выполнить строковый вызов для получения ключа имени из раздела владельца из файла настроек, например, dbsettings.ini
. Возвращаемое значение должно быть строкой «Джон Доу»:
GetPrivateProfileString("owner", "name", ... , "c:\\programs\\oldprogram\\dbsettings.ini");
Сопоставление INI принимает этот вызов Profile API, игнорирует любой путь в данном имени файла и проверяет, существует ли ключ реестра, соответствующий имени файла в каталоге:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
Куррентверсион\инифилемаппинг
Если он существует, он ищет имя записи, соответствующее запрошенному разделу. Если запись найдена, сопоставление INI использует ее значение как указатель на другую часть реестра. Затем он ищет запрошенную настройку INI в этой части реестра.
есть запись Если соответствующее имя записи не найдено, а под именем записи (по умолчанию) , вместо этого используется сопоставление INI. Таким образом, для каждого имени раздела не требуется отдельная запись.
HKEY_LOCAL_MACHINE\Software\...\IniFileMapping\dbsettings.ini | |
---|---|
(По умолчанию) | @USR:Software\oldprogs\inisettings\all |
база данных | USR:Software\oldprogs\inisettings\db |
Итак, в этом случае вызов профиля для раздела [владелец] сопоставляется с:
HKEY_CURRENT_USER\Software\oldprogs\inisettings\all | |
---|---|
имя | Джон Доу |
организация | Продукты Акме |
где имя записи реестра " name " соответствует запрошенному ключу INI. Затем значение «Джон Доу» возвращается при вызове профиля. В этом случае префикс @ по умолчанию предотвращает передачу операций чтения в dbsettings.ini
файл на диске. В результате любые настройки, которых нет в реестре, не ищутся в INI-файле.
Запись реестра « база данных » не имеет префикса @ в значении; таким образом, для [database]
разделе только в , сначала выполняются настройки в реестре, а затем настройки в dbsettings.ini
файл на диске.
Альтернативы
[ редактировать ]Начиная с Windows 95 , Microsoft начала активно продвигать использование реестра Windows вместо файлов INI. [59] Файлы INI обычно ограничены двумя уровнями (разделы и свойства) и плохо обрабатывают двоичные данные. Это решение, однако, не было защищено от критики, поскольку реестр является монолитным, непрозрачным и двоичным, должен синхронизироваться с файловой системой и представляет собой единую точку отказа для операционной системы. [60]
Позже файлы конфигурации на основе XML стали популярным выбором для кодирования конфигурации в текстовых файлах. [ нужна ссылка ] XML допускает произвольно сложные уровни и вложенность и имеет стандартные механизмы кодирования двоичных данных .
В последнее время форматы сериализации данных , такие как JSON , TOML и YAML, могут служить форматами конфигурации. Эти три альтернативных формата могут вкладываться произвольно, но их синтаксис отличается от синтаксиса INI-файла. Среди них TOML больше всего похож на INI, но идея сделать TOML намеренно совместимым с большим подмножеством INI была отвергнута. [61]
Однако новейшие анализаторы INI допускают одинаковый произвольный уровень вложенности XML , JSON , TOML и YAML , предлагают эквивалентную поддержку типизированных значений и Unicode , хотя сохраняют «неформальный статус» файлов INI, позволяя использовать несколько синтаксисов для выражения одного и того же. . [62]
См. также
[ редактировать ]- ЗАГРУЗИТЬ.ЭТО
- MSConfig
- системное редактирование
- СИСТЕМА.INI
- TOML — очень похожий, но более формально определенный формат файла конфигурации.
- ПОБЕДА.
- Amiga IFF - файлы
- .DS_Store
- .характеристики
Ссылки
[ редактировать ]- ^ Microsoft TechNet: Настройка элемента INI-файла
- ^ файлы инициализации .conf
- ^ Microsoft: Ресурсный комплект для рабочей станции Windows NT
- ^ Microsoft Learn (08 февраля 2022 г.). «Как настроить папки с помощью Desktop.ini» . Проверено 10 января 2024 г.
- ^ Кодрут Нягу, «Почему на моем рабочем столе два файла Desktop.ini и что они делают?» .
- ^ Расмус Лердорф, Кевин Татро, Питер МакИнтайр. «Программирование PHP» . Разделы «parse_ini_file», «INI-записи расширения» и т. д.
- ^
Кристиан Венц.
«Разговорник PHP и MySQL» .
раздел «Разбор INI-файлов».
цитата: "...формат файла INI... очень широко использовался в мире Windows, но сегодня также управляет конфигурацией таких программных продуктов, как PHP. Например,...
php.ini
" - ^ «ФАЙЛ КОНФИГУРАЦИИ git-config» .
- ^ «Основной формат файла» . Спецификации.freedesktop.org .
- ^ "systemd.service" . www.freedesktop.org .
- ^ «afp.conf — файл конфигурации Netatalk» . Проверено 10 января 2024 г.
- ^ "pacman.conf(5)" . Archlinux.org .
- ^ Перейти обратно: а б с Руководство по функциям библиотеки libconfini
- ^ Документация Apache для org.apache.commons.configuration2.INIConfiguration , The Apache Software Foundation
- ^ Сюда входит реализация Windows. Видеть «Функция GetPrivateProfileString» . Сеть разработчиков Microsoft . Майкрософт . Проверено 2 июня 2012 г.
- ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
- ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
- ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
- ^ Реализация клонирования
- ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
- ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
- ^ Среди авторов INI-файлов обычной практикой является «закомментировать» ненужные записи, чтобы отключить их, вместо того, чтобы удалять их полностью. См. ключ
a
в следующем примере:[section]
#a=a
b=b - ^ Стандартный синтаксис продолжения строки здесь относится к последовательности обратной косой черты, за которой следует разрыв строки , как это реализовано в iniparser , libconfini и
java.util.Properties
- ^ Фредрик Лунд. «Стандартная библиотека Python» . 2001. Раздел «Модуль ConfigParser». п. 143
- ^ «ConfigParser — анализатор файла конфигурации» .
- ^ Следуя синтаксису языка, для работы с которым он предназначен ( Python ), для охвата узла несколькими строками ConfigParser требует более глубокого отступа в последующих строках вместо более распространенного обратного слэша + разрыва строки (см.: configparser — Конфигурация парсер файлов )
- ^ Документация Python по версиям
- ^ Анализатор файлов ключ-значение GLib
- ^ Уитнолл, Филип (11 февраля 2021 г.). "глиб 2.66.7" . FTP-релиз GNOME (список рассылки) . Проверено 12 февраля 2021 г.
- ^ Релизы · GNOME/glib
- ^ документация inifile
- ^ Релизы · inifile
- ^ вот README
- ^ Использование отступов, явно следуя подходу ConfigParser (дополнительную информацию см. в документации проекта).
- ^ Релизы · benhoyt/inih
- ^ документация iniparser
- ^ Релизы · iniparser/iniparser
- ^ Свойства (платформа Java SE 8)
- ^ «OpenJDK: GPLv2 + исключение пути к классам» . Openjdk.java.net. 01.04.1989 . Проверено 9 февраля 2016 г.
- ^ «BCL для Java SE» . Oracle.com. 2 апреля 2013 г. Проверено 9 февраля 2016 г.
- ^ «Релизы JDK» . Корпорация Оракл . Проверено 9 декабря 2022 г.
- ^ «Релизы JDK» . Корпорация Оракл . Проверено 17 января 2024 г.
- ^ документация libconfini
- ^ Релизы · madmurphy/libconfini
- ^ PHP . "
parse_ini_file()
— Разобрать файл конфигурации» . Официальная документация PHP . Проверено 19 июля 2022 г. - ^ Лицензия PHP v3.01 [1]
- ^ «Версия 8.3.9» . 4 июля 2024 г. Проверено 8 июля 2024 г.
- ^ ПиИНИ
- ^ Теги · whoatemybutter / PyINI
- ^ Python-ini
- ^ Документация RudeConfig
- ^ Релизы · RudeConfig
- ^ «25 июля 2024 г. — KB5040527 (сборки ОС 22621.3958 и 22631.3958) Предварительная версия» . Поддержка Майкрософт . Майкрософт .
- ^ «Выпущено Wine 9.0» . 16 января 2024 г. Проверено 16 января 2024 г.
- ^ Перейти обратно: а б с «configparser на crates.io» . crates.io . 2022-12-12. Архивировано из оригинала 12 декабря 2022 г. Проверено 12 декабря 2022 г.
- ^ страница github java-ini-parser
- ^ Файлы инициализации и реестр , Windows NT Workstation Resource Kit , Microsoft TechNet
- ^ Администрирование реестра NT , Управление реестром Windows NT , Пол Робишо, O'Reilly Media
- ^ Системный реестр
- ^ Был ли реестр Windows хорошей идеей? – Кодирующий ужас
- ^ «Комментарий к вопросу «Совместимость .INI — достойная цель» на GitHub» . Гитхаб .
- ^ libconfini/README
- Информационное окно – http://filext.com/file-extension/INI
- Инфобокс — https://wikiext.com/ini
Внешние ссылки
[ редактировать ]- Руководство по функциям библиотеки libconfini : конкретный синтаксис, разрешенный libconfini.
- Cloanto. Реализация формата файла INI : особый синтаксис, разрешенный синтаксическим анализатором, реализованным Cloanto.
- Очень простой метаформат файла данных : руководство по анализатору INI в Apache Groovy.
- Microsoft GetPrivateProfileString() и WritePrivateProfileStringA() Функции