Формат ini файлов windows

INI – Файл конфигураций в Windows (Windows Initialization File)

Расширение INI

Чем открыть файл INI

В Windows: Microsoft Windows, Microsoft Notepad, Microsoft WordPad, UltraEdit, любой другой текстовый редактор
В Mac OS: Parallels Desktop 8 для Mac с установленной Windows
В Linux: gedit

Описание расширения INI

Популярность:

Файл INI – это файл конфигурации, используемый программами Windows, для инициализации настроек программ; содержит разделы для настройки (ограниченные строкой в квадратных скобках), при этом каждый раздел, содержащий одну или несколько имен и значений параметров, комментарий начинается с «;». Пример:

; некоторый комментарий
[Раздел 1 ]
; комментарий о разделе 1
name1 = значение_1 ; иногда комментарий могут быть написаны здесь
name2 = значение_2

[Раздел 2 ]
; комментарий о разделе 2
name1 = значение_1, значение_2, значение_3
name2 = значение_2
name3 = значение_3

INI-файлы могут быть открыты в любом текстовом редакторе, но обычно их нельзя изменять или редактировать обычным пользователям, т.к. это может привести к не предсказуемой работе программы. .INI файлы были частично заменены реестром в Windows 95. Совсем недавно файлы с расширением INI были заменены XML файлами.

ПРИМЕЧАНИЕ: desktop.ini – скрытый файл, расположенный в папке Windows, содержит настройки для конкретной папки. Этот файл может указывать изображение, которое используется как иконка для папки, а также внешний вид файлов папки. Если вы удалите файл desktop.ini, Windows может создать новый файл. Файл .DS_Store в Mac OS X служит той же цели.

Другие программы, связанные с расширением INI

    Файл конфигураций Symbian OS
    Файл конфигурации, который хранит параметры и настройки пользователя для операционной системы Symbian и установленных приложений, похож на INI-файлы, используемые в Windows, и как правило, не должны быть открыты вручную. Относится к разделу Конфигурационные файлы.

ПРИМЕЧАНИЕ: Файлы Symbian INI можно редактировать с помощью текстового редактора, чтобы изменить определенные настройки. Тем не менее, изменения в INI файле могут привести к тому, что операционная система или другие программы не будут функционировать правильно. Поэтому, не забудьте сделать резервную копию файла и править файл только если вы точно знаете, что добавить или изменить.

Популярность:

    Установочный файл Gravis UltraSound Bank
    Содержит настройки для Gravis UltraSound Bank (.FFF файл), а также файлы обновлений, используемых в аудио картах Gravis. Относится к разделу Конфигурационные файлы.

    Популярность:

    Файл с информацией об альбоме в Google Picasa от Google Inc.
    Расширение INI файла также используется в Google Picasa, которая используется для организации и редактирования цифровых фотографий. *.Ini-файл, используемый в Google Picasa содержит сведения об альбоме. Для версии Picasa для Windows 71.18 и выше, *.ini файлы называются *.picasa.ini. Относится к разделу Другие файлы.

    Популярность:

    Простой файл c информацией об обменном курсе
    Расширение файла INI также используется для файлов c информацией об обменном курсе в формате SERIFF. SERIFF является текстовым форматом для представления курсов валют. Полное описание формата SERIFF можно найти на официальном сайте. Относится к разделу Конфигурационные файлы.

    Популярность:

INI-файл — INI file

Тип формата Файл инициализации / конфигурации

Файл INI — это файл конфигурации для компьютерное программное обеспечение , которое состоит из текстового содержимого со структурой и синтаксисом, состоящими из пар ключ-значение для свойств, и разделов, которые организуют свойства. Имя этих файлов конфигурации происходит от имени файла с расширением INI для инициализации, используемого в операционной системе MS-DOS , которая сделала этот метод конфигурации программного обеспечения популяризованным. Формат стал неформальным стандартом во многих контекстах конфигурации, но многие приложения в других операционных системах используют другие расширения имен файлов, такие как conf и cfg.

Содержание

История

Основным механизмом конфигурации программного обеспечения в Windows изначально был формат текстового файла, который содержал текстовые строки с одной парой «ключ-значение» в каждой строке, организованные в разделы. Этот формат использовался для компонентов операционной системы, таких как драйверы устройств, шрифты, средства запуска. Файлы INI также обычно использовались приложениями для хранения индивидуальных настроек.

Формат поддерживался в 16-битных платформах Microsoft Windows вплоть до Windows 3.1x . Начиная с Windows 95 Microsoft одобрила использование реестра Windows и начала уводить разработчиков от использования файлов INI для конфигурации. Все последующие версии Windows использовали реестр Windows для конфигурации системы, но приложения, созданные на .NET Framework, используют специальные файлы XML .config. Функции файла инициализации по-прежнему доступны в Windows, и разработчики по-прежнему могут их использовать. Системы

Linux и Unix также используют аналогичный формат файла для конфигурации системы. Кроме того, программное обеспечение, не зависящее от платформы, может использовать этот формат файла для конфигурации. Это удобочитаемый и простой для синтаксического анализа формат, поэтому его можно использовать для файлов конфигурации, которые не требуют гораздо большей сложности.

Файлы конфигурации Git похожи на файлы INI.

Например, платформенно-независимый PHP использует формат INI для своего » php.ini «конфигурационный файл в системах Windows и Linux. Файлы

Desktop.ini определяют отображение каталогов в Windows, например, значки для каталога.

Формат

Ключи (свойства)

Базовым элементом, содержащимся в файле INI, является ключ или свойство. У каждого ключа есть имя и значение, разделенное знаком равно (=). Имя отображается слева от знака равенства. В реализации Windows знак равенства и точка с запятой являются зарезервированными символами и не могут появляться в ключе. Значение может содержать любой символ.

Разделы

Ключи могут, но не обязательно, группироваться в разделы с произвольным названием. Имя раздела появляется в отдельной строке в квадратных скобках ([и]). Все ключи после объявления раздела связаны с этим разделом. Нет явного разделителя «конец раздела»; разделы заканчиваются объявлением следующего раздела или в конце файла. Разделы не могут быть вложенными.

Чувствительность к регистру

Имена разделов и свойств не чувствительны к регистру в реализации Windows, но в других приложениях может вести себя по-другому.

Комментарии

Точка с запятой (;) в начале строки обозначает комментарий . Строки комментариев игнорируются.

Различные функции

Формат файла INI не является универсальным строго определенным. Многие компьютерные программы поддерживают функции, выходящие за рамки уже описанных основных функций. Ниже приводится список некоторых общих функций, которые могут быть, а могут и не быть реализованы в любой данной программе.

Комментарии

Некоторое программное обеспечение поддерживает использование знака числа (#) в качестве альтернативы точке с запятой для обозначения комментариев. Однако он может быть включен в название ключа. Например, следующая строка создает переменную с именем «#var», но не переменную с именем «var»; иногда это используется для создания псевдо-реализации комментария.

В общем, использование знака числа непредсказуемо, как в следующих строках (обратите внимание на пробел после знака числа во второй строке). По этой причине не следует использовать знак числа в начале комментария.

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

Повторяющиеся имена

Большинство реализаций поддерживают только одно свойство с заданным именем в разделе. Второе вхождение имени свойства может вызвать прерывание , оно может быть проигнорировано (и значение отброшено), или оно может переопределить первое вхождение (с отклонением первого значения). Некоторые программы используют повторяющиеся имена свойств для реализации многозначных свойств.

Интерпретация нескольких объявлений разделов с одним и тем же именем также различается. В некоторых реализациях повторяющиеся разделы просто объединяют свои свойства, как если бы они располагались непрерывно. Другие могут прервать или проигнорировать некоторые аспекты INI-файла.

escape-символы

Некоторые реализации также предлагают различную поддержку для escape-символа , обычно с обратной косой чертой ( \ ). Некоторые поддерживают «продолжение строки», где обратная косая черта, за которой сразу следует EOL (конец строки), приводит к игнорированию разрыва строки и продолжению «логической строки» на следующей фактической строке из INI-файла. Также наблюдается реализация различных «специальных символов» с escape-последовательностями.

Обычные escape-последовательности

Последовательность Значение
\\ \ (одиночная обратная косая черта , экранирующая escape-символ)
\’ Апостроф
Двойные кавычки
\0 Нулевой символ
\a Bell / Alert / Audible
\b Backspace , Bell character для некоторых приложений
\t Tab знак
\r Возврат каретки
\n Перевод строки
\; Точка с запятой
\# Знак числа
\= Знак равенства
\: Двоеточие
\ x . Символ Юникода с шестнадцатеричнымкодовой точкой , соответствующей .

Глобальные свойства

Также могут быть разрешены необязательные «глобальные» свойства, которые объявляются перед объявлением любого раздела.

Иерархия

Чаще всего файлы INI не имеют иерархия разделов внутри разделов. Однако некоторые файлы имеют иерархическое соглашение об именах. Для раздела A, подраздела B, подраздела C, свойства P и значения V они могут принимать такие записи, как [ABC] и P = V (Windows ‘ xstart .ini ), [A \ B \ C] и P = V (файл драйвера IBM Windows devlist.ini ) или [A] и B, C, P = V (файл Microsoft Visual Studio AEMANAGR.INI ).

Неясно, являются ли это просто соглашения об именах, которые приложение использует для создания видимости иерархии, или же файл читается модулем, который фактически представляет эту иерархию программисту приложения. .

Разделитель имени / значения

Некоторые реализации допускают использование двоеточия ( : ) в качестве разделителя имени / значения (вместо знака равенства).

Значения в кавычках

Некоторые реализации позволяют заключать значения в кавычки, обычно с использованием двойных кавычек и / или апострофов . Это позволяет явно указывать пробелы и / или заключать в кавычки специальные символы (равно, точка с запятой и т. Д.). Стандартная функция Windows GetPrivateProfileString поддерживает это и удаляет кавычки, окружающие значения.

Пробел

Интерпретация пробела варьируется. Большинство реализаций игнорируют начальные и конечные пробелы вокруг имени свойства. Некоторые даже игнорируют пробелы в значениях (например, делая эквивалентными «имя хоста» и «имя хоста»). Некоторые реализации также игнорируют начальные и конечные пробелы вокруг значения свойства; другие считают, что все символы , следующие за знаком равенства (включая пробелы), являются частью значения.

Порядок разделов и свойств

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

Пример

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

Доступ к файлам INI

В Windows Profile API является программным интерфейс, используемый для чтения и записи настроек из классических файлов Windows .ini. Например, функция GetPrivateProfileString извлекает строку из указанного раздела в файле инициализации.

В следующем примере программы C демонстрируется чтение значений свойств из приведенного выше примера INI-файла (пусть имя файла конфигурации будет dbsettings.ini ):

Третий параметр функции GetPrivateProfileString — это значение по умолчанию, которое равно «127.0.0.1» и 143 соответственно в двух вызовах функций выше. Если аргумент, предоставленный для этого параметра, — ПУСТО (NULL), по умолчанию используется пустая строка «».

В Unix существует множество различных библиотек конфигурации для доступа к файлам INI. Часто они уже включены в структуры и наборы инструментов. Примеры синтаксических анализаторов INI для Unix включают GLib , iniparser и libconfini .

Сравнение анализаторов INI

Имя Поддержка разделов Поддержка вложения разделов Распознавание отключенных записей Поддержка нескольких строк Типы значений Поддержка чтения / записи Платформа Лицензия Язык программирования Последняя версия выпуска
Да Нет Нет Нестандартный Логический , Число , Строка Чтение + Запись * BSD , GNU / Linux , macOS , Windows PSFL C(реализация), Python (использование) 3.8.2
GLib Да Да Нет Нет Логическое , Число , Строка , Массив Чтение + Запись * BSD , GNU / Linux , macOS , Windows LGPL C 2.64.4 (2 июля 2020 г .; 3 месяца назад (2020-07-02))
Да Нет Нет Нет Логическое , Число , Строка Чтение + запись * BSD , GNU / Linux , macOS , Windows Apache Go 1.2.0 Да Нет Нет Да Логическое , Число , Строка Чтение * BSD , GNU / Linux , macOS , Windows BSD C 48 Да Нет Нет Да логическое , число , строка чтение + запись * BSD , GNU / Linux , macOS , Windows MIT C 4.1 Java (через java.util.Properties ) Нет Нет Нет Да Строка Чтение + запись Независимость от платформы Двойная лицензия: версия GPL 2 с исключением пути к классам и проприетарной лицензией . C(реализация), Java (использование) 15.0.1 (20 октября 2020 г .; 4 дня назад (2020-10-20))

11.0.9 (11 сентября 2020 г .; 43 дня назад (2020-09-11))
8u272 (28 сентября 2020 г .; 26 дней назад (2020-09-28))

Да Да Да Да Логическое , Число , Строка , Массив Чтение * BSD , GNU / Linux , macOS , Windows GPL C 1.14.0 PyINI Да Нет Да Да Логическое , Число , Строка Чтение + запись Независимость от платформы GPL Python 1.0 Да Нет Нет Нет Логическое , Число , Строка Чтение + Запись GNU / Linux , Windows GPL C ++ Снято с производства — последняя версия 5.0.5, с ноября 2009 г. Windows API Да Нет Нет Нет Число , Строка , Структура Чтение + запись (неразрушающий) Windows Собственный C 1803 (10.0.17134.112) (июнь 12, 2018; 2 года назад (2018-06-12)) Wine (imp использование Windows API ) Да Нет Нет Нет Число , Строка , Struct чтение + запись (неразрушающий) Linux , macOS , Windows LGPL C 5.0.2 (7 августа 2020 г .; 2 месяца назад (2020-08-07)) Имя Поддержка разделов Поддержка вложенности разделов Распознавание отключенных записей Многострочный поддержка Типы значений Поддержка чтения / записи Платформа Лицензия Язык программирования Последняя версия выпуска

Сопоставление файлов

Инициализация сопоставление файлов создает сопоставление между файлом INI и реестром . Он был представлен в Windows NT и Windows 95 как способ перехода от хранения настроек в классических файлах .ini к новому реестру Windows . Сопоставление файлов перехватывает вызовы Profile API и, используя настройки из раздела реестра IniFileMapping , направляет чтение и запись в соответствующие места в реестре.

Используя приведенный выше пример, можно выполнить строковый вызов, чтобы получить ключ имени из раздела владельца из файла настроек, например, dbsettings.ini. Возвращаемое значение должно быть строкой «Джон Доу»:

Отображение INI принимает этот вызов API профиля, игнорирует любой путь в данном имени файла и проверяет, есть ли ключ реестра, соответствующий имени файла в каталоге:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \
CurrentVersion \ IniFileMapping

Если он существует, он ищет имя записи, совпадающее с запрошенным разделом. Если запись найдена, отображение 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 John Doe
organization Acme Products

, где найдено имя записи реестра « name », совпадающее с запрошенным ключом INI. Затем значение «John Doe» возвращается вызову Profile. В этом случае префикс @ по умолчанию препятствует чтению файла dbsettings.ini на диске. В результате любые настройки, не найденные в реестре, не ищутся в INI-файле.

Запись реестра « база данных » не имеет префикса @ в значении; таким образом, только для раздела [database] сначала берутся настройки в реестре, а затем настройки в файле dbsettings.ini на диске.

Альтернативы

Начиная с Windows 95 , Microsoft начала активно продвигать использование реестра Windows вместо INI-файла. Файлы INI обычно ограничены двумя уровнями (разделы и свойства) и плохо обрабатывают двоичные данные. Однако это решение не было защищено от критики из-за того, что реестр является монолитным, непрозрачным и двоичным, должен быть синхронизирован с файловой системой и представляет собой единую точку отказа для операционной системы.

Позже файлы конфигурации на основе XML стали популярным выбором для кодирования конфигурации в текстовых файлах. XML допускает произвольно сложные уровни и вложения и имеет стандартные механизмы для кодирования двоичных данных .

В последнее время форматы сериализации данных , такие как JSON , TOML и YAML могут служить форматами конфигурации. Эти три альтернативных формата могут размещаться произвольно, но имеют другой синтаксис, чем файл INI. Среди них TOML больше всего напоминает INI, но идея сделать TOML сознательно совместимым с большим подмножеством INI была отклонена.

Однако новейшие синтаксические анализаторы INI допускают такой же произвольный уровень вложенности XML , JSON , TOML и YAML предлагают эквивалентную поддержку типизированных значений и Unicode , хотя сохранить «неформальный статус» файлов INI, разрешив несколько синтаксисов для выражения одного и того же.

Читайте также:  Windows server 2012 r2 не устанавливается visual c
Оцените статью