Jump to content

INI-файлы

(Перенаправлено из 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-последовательности
Последовательность Значение
\\ \ (одиночная обратная косая черта , экранирующая 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 г .; 3 года назад ( 11.02.2021 ) ) [±] [29]

[30]

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 г .; 3 месяца назад ( 19.04.2024 ) ) [±]

21.0.0 LTS (19 сентября 2023 г .; 10 месяцев назад ( 19.09.2023 ) ) [±]
17.0.6 LTS (18 февраля 2023 г .; 17 месяцев назад ( 18 февраля 2023 г. ) ) [±]
11.0.17 LTS (18 октября 2022 г .; 21 месяц назад ( 18.10.2022 ) [41] ) [±]
8u401 LTS (16 января 2024 г .; 6 месяцев назад ( 16.01.2024 ) [42] ) [±]

библиотека 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 г .; 29 дней назад ( 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 г .; 8 дней назад ( 25.07.2024 ) [53] ) [±]
Wine (реализация Windows API ) Да Нет Нет Нет Число , Строка , Структура Чтение + запись (неразрушающий) Linux , MacOS , Windows LGPL С 9.0 [54]  Отредактируйте это в Викиданных 16 января 2024 г .; 6 месяцев назад ( 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]

См. также

[ редактировать ]
  1. ^ Microsoft TechNet: Настройка элемента INI-файла
  2. ^ файлы инициализации .conf
  3. ^ Microsoft: Ресурсный комплект для рабочей станции Windows NT
  4. ^ Microsoft Learn (08 февраля 2022 г.). «Как настроить папки с помощью Desktop.ini» . Проверено 10 января 2024 г.
  5. ^ Кодрут Нягу, «Почему на моем рабочем столе два файла Desktop.ini и что они делают?» .
  6. ^ Расмус Лердорф, Кевин Татро, Питер МакИнтайр. «Программирование PHP» . Разделы «parse_ini_file», «INI-записи расширения» и т. д.
  7. ^ Кристиан Венц. «Разговорник PHP и MySQL» . раздел «Разбор INI-файлов». цитата: "...формат файла INI... очень широко использовался в мире Windows, но сегодня также управляет конфигурацией таких программных продуктов, как PHP. Например,... php.ini"
  8. ^ «ФАЙЛ КОНФИГУРАЦИИ git-config» .
  9. ^ «Основной формат файла» . Спецификации.freedesktop.org .
  10. ^ "systemd.service" . www.freedesktop.org .
  11. ^ «afp.conf — файл конфигурации Netatalk» . Проверено 10 января 2024 г.
  12. ^ "pacman.conf(5)" . Archlinux.org .
  13. ^ Перейти обратно: а б с Руководство по функциям библиотеки libconfini
  14. ^ Документация Apache для org.apache.commons.configuration2.INIConfiguration , The Apache Software Foundation
  15. ^ Сюда входит реализация Windows. Видеть «Функция GetPrivateProfileString» . Сеть разработчиков Microsoft . Майкрософт . Проверено 2 июня 2012 г.
  16. ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
  17. ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
  18. ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
  19. ^ Реализация клонирования
  20. ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
  21. ^ Проект Git. "config.txt" . Проверено 10 января 2024 г.
  22. ^ Среди авторов INI-файлов обычной практикой является «закомментировать» ненужные записи, чтобы отключить их, вместо того, чтобы удалять их полностью. См. ключ a в следующем примере:
    [section]
    #a=a
    b=b
  23. ^ Стандартный синтаксис продолжения строки здесь относится к последовательности обратной косой черты, за которой следует разрыв строки , как это реализовано в iniparser , libconfini и java.util.Properties
  24. ^ Фредрик Лунд. «Стандартная библиотека Python» . 2001. Раздел «Модуль ConfigParser». п. 143
  25. ^ «ConfigParser — анализатор файла конфигурации» .
  26. ^ Следуя синтаксису языка, для работы с которым он предназначен ( Python ), для охвата узла несколькими строками ConfigParser требует более глубокого отступа в последующих строках вместо более распространенного обратного слэша + разрыва строки (см.: configparser — Конфигурация парсер файлов )
  27. ^ Документация Python по версиям
  28. ^ Анализатор файлов ключ-значение GLib
  29. ^ Уитнолл, Филип (11 февраля 2021 г.). "глиб 2.66.7" . FTP-релиз GNOME (список рассылки) . Проверено 12 февраля 2021 г.
  30. ^ Релизы · GNOME/glib
  31. ^ документация inifile
  32. ^ Релизы · inifile
  33. ^ вот README
  34. ^ Использование отступов, явно следуя подходу ConfigParser (дополнительную информацию см. в документации проекта).
  35. ^ Релизы · benhoyt/inih
  36. ^ документация iniparser
  37. ^ Релизы · iniparser/iniparser
  38. ^ Свойства (платформа Java SE 8)
  39. ^ «OpenJDK: GPLv2 + исключение пути к классам» . Openjdk.java.net. 01.04.1989 . Проверено 9 февраля 2016 г.
  40. ^ «BCL для Java SE» . Oracle.com. 2 апреля 2013 г. Проверено 9 февраля 2016 г.
  41. ^ «Релизы JDK» . Корпорация Оракл . Проверено 9 декабря 2022 г.
  42. ^ «Релизы JDK» . Корпорация Оракл . Проверено 17 января 2024 г.
  43. ^ документация libconfini
  44. ^ Релизы · madmurphy/libconfini
  45. ^ PHP . " parse_ini_file() — Разобрать файл конфигурации» . Официальная документация PHP . Проверено 19 июля 2022 г.
  46. ^ Лицензия PHP v3.01 [1]
  47. ^ «Версия 8.3.9» . 4 июля 2024 г. Проверено 8 июля 2024 г.
  48. ^ ПиИНИ
  49. ^ Теги · whoatemybutter / PyINI
  50. ^ Python-ini
  51. ^ Документация RudeConfig
  52. ^ Релизы · RudeConfig
  53. ^ «25 июля 2024 г. — KB5040527 (сборки ОС 22621.3958 и 22631.3958) Предварительная версия» . Поддержка Майкрософт . Майкрософт .
  54. ^ «Выпущено Wine 9.0» . 16 января 2024 г. Проверено 16 января 2024 г.
  55. ^ Перейти обратно: а б с «configparser на crates.io» . crates.io . 2022-12-12. Архивировано из оригинала 12 декабря 2022 г. Проверено 12 декабря 2022 г.
  56. ^ страница github java-ini-parser
  57. ^ Файлы инициализации и реестр , Windows NT Workstation Resource Kit , Microsoft TechNet
  58. ^ Администрирование реестра NT , Управление реестром Windows NT , Пол Робишо, O'Reilly Media
  59. ^ Системный реестр
  60. ^ Был ли реестр Windows хорошей идеей? – Кодирующий ужас
  61. ^ «Комментарий к вопросу «Совместимость .INI — достойная цель» на GitHub» . Гитхаб .
  62. ^ libconfini/README
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 57954b784ff4c996bbb800a9515f175a__1720115280
URL1:https://arc.ask3.ru/arc/aa/57/5a/57954b784ff4c996bbb800a9515f175a.html
Заголовок, (Title) документа по адресу, URL1:
INI file - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)