ini-файл (англ. Initialization file) — файл конфигурации[англ.], который содержит данные настроек для Microsoft Windows, Windows NT и некоторых приложений.
Появились с самых первых версий Windows. В версии Windows 1.01 это был только файл WIN.INI. В Windows 3.0 добавился файл SYSTEM.INI. А затем их количество начало расти быстро и бесконтрольно.
Не существует подробной официальной спецификации формата. Начиная с Windows 95, INI файлы считаются устаревшими и в качестве замены им Microsoft предлагает использовать системный реестр (Registry). Тем не менее INI файлы продолжают использоваться как приложениями других производителей, так и компонентами ОС от Microsoft. Например, файл boot.ini используется в Windows NT4/2000/XP при загрузке для выбора из нескольких ОС.
Хотя INI файлы и приобрели популярность в Windows, они могут использоваться в любой ОС. Несложная структура этого формата позволяет легко обрабатывать их программно и имеет достаточно понятный вид для чтения и изменения человеком. Существуют текстовые редакторы (например, SciTE или Notepad++), которые используют подсветку синтаксиса и фолдинг для этого формата, что облегчает редактирование INI файлов вручную.
Использование секций для разделения параметров способствует систематизации данных, однако для хранения настроек большого объёма с более сложной иерархической структурой лучше подходит формат XML или JSON.
Формат файла
ini-файлы — это обычные текстовые файлы, которые можно редактировать и просматривать при помощи любого текстового редактора. ini-файлы имеют следующий формат:
; некоторый комментарий# комментарий в стиле Unix[Section1]; комментарий о разделеvar1=значение_1 ; иногда допускается комментарий к отдельному параметруvar2=значение_2 [Section2]var1=значение_1var2=значение_2; иногда позволяется перечислять несколько значений через запятую[Section3]var1=значение_1_1, значение_1_2, значение_1_3var2=значение_2; в Zend Framework массив задаётся следующим способом[Section3.1]var1[]=значение_1_1var1[]=значение_1_2var1[]=значение_1_3var2=значение_2; Иногда значения отсутствуют [Section4.0][ViewState]Mode=Vid=FolderType=GenericINI файл может содержать:
- пустые строки;
- комментарии — от символа
;(точка с запятой), стоящего в начале строки, до конца строки; - заголовки разделов — строки, состоящие из названия раздела, заключённого в квадратные скобки
[]; - значения параметров — строки вида
ключ=значение.
Соглашения
Не существует общепринятого стандарта формата файлов INI. Хотя общая структура таких файлов обычно сохраняется, многие программные продукты вводят в неё дополнительные возможности или, наоборот, ограничения.
- Комментарии. Некоторые приложения (например, Samba) считают символом начала комментария как
;, так и#. - Обратный слэш. Иногда допускается использование обратного слэша
\для объявления следующей строки продолжением этой. В таком случае они будут обработаны как одна целая строка. Иногда возможно также применять его для ввода спецсимволов, например,\nдля обозначения переноса строки. - Одинаковые параметры. В большинстве случаев наличие двух одинаковых ключей в одной секции запрещено (при этом в Windows обрабатывается только первый, а во многих других реализациях — последний ключ).
- Одинаковые имена секций. Обычно при наличии нескольких секций с одинаковыми именами в файле обрабатывается лишь первая (в реализации Windows) или последняя из них. Некоторые приложения объединяют содержимое всех таких секций в одну.
- Кавычки. Если значение взято в двойные или одинарные кавычки, функция чтения файлов INI в Windows убирает их. Убирается только внешняя пара кавычек. При этом функция записи в INI игнорирует эту особенность.