Как запустить ini файл. Что такое INI-файлы и для чего они нужны. Программы, открывающие файл INI

Как запустить ini файл. Что такое INI-файлы и для чего они нужны. Программы, открывающие файл INI

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

Поисковая система

Введите расширение файла

Помощь

Подсказка

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

Что сделать, если приложение со списка уже было установлено?

Часто установленное приложение должно автоматически связаться с файлом INI. Если это не произошло, то файл INI успешно можно связать вручную с ново установленным приложением. Достаточно нажать правой кнопкой мышки на файл INI, а затем среди доступных выбрать опцию "Выбрать программу по умолчанию". Затем необходимо выбрать опцию "Просмотреть" и отыскать избранное приложение. Введенные изменения необходимо утвердить с помощью опции "OK".

Программы, открывающие файл INI

Windows
Mac OS
Linux

Почему я не могу открыть файл INI?

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

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

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

Мой компьютер не показывает расширений файлов, что сделать?

В стандартных установках системы Windows пользователь компьютера не видит расширения файлов INI. Это успешно можно изменить в настройках. Достаточно войти в "Панель управления" и выбрать "Вид и персонализация". Затем необходимо войти в "Опции папок", и открыть "Вид". В закладке "Вид" находится опция "Укрыть расширения известных типов файлов" - необходимо выбрать эту опцию и подтвердить операцию нажатием кнопки "OK". В этот момент расширения всех файлов, в том числе INI должны появится сортированные по названию файла.

Не существует подробной официальной спецификации формата. Начиная с Windows 95 , INI файлы считаются устаревшими и в качестве замены им Microsoft предлагает использовать системный реестр (). Тем не менее INI файлы продолжают использоваться как приложениями других производителей, так и компонентами ОС от Microsoft. Например, файл boot.ini используется в Windows NT4/2000/XP при загрузке для выбора из нескольких ОС .

Хотя INI файлы и приобрели популярность в Windows , они могут использоваться в любой ОС. Несложная структура этого формата позволяет легко обрабатывать их программно и имеет достаточно понятный вид для чтения и изменения человеком. Существуют текстовые редакторы (например, SciTE или Notepad++), которые используют подсветку синтаксиса и фолдинг для этого формата, что облегчает редактирование INI файлов вручную.

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

Формат файла

ini-файлы - это обычные текстовые файлы , которые можно редактировать и просматривать при помощи любого текстового редактора . ini-файлы имеют следующий формат:

; некоторый комментарий # комментарий в стиле Unix ; комментарий о разделе var1=значение_1 ; иногда допускается комментарий к отдельному параметру var2=значение_2 var1=значение_1 var2=значение_2 ; иногда позволяется перечислять несколько значений через запятую var1=значение_1_1, значение_1_2, значение_1_3 var2=значение_2 ; в Zend Framework массив задаётся следующим способом var1=значение_1_1 var1=значение_1_2 var1=значение_1_3 var2=значение_2 ; Иногда значения отсутствуют Mode= Vid= FolderType=Generic

INI файл может содержать:

  • пустые строки ;
  • комментарии - от символа «; » (точка с запятой) до конца строки;
  • заголовки разделов - строки, состоящие из названия раздела, заключённого в квадратные скобки « »;
  • значения параметров - строки вида «ключ=значение ».

Соглашения

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

  • Комментарии . Некоторые приложения (например, Samba) считают символом начала комментария как «;», так и «#».
  • Обратный слэш . Иногда допускается использование обратного слэша «\» для объявления следующей строки продолжением этой. В таком случае они будут обработаны как одна целая строка. Иногда возможно также применять «\» для ввода спецсимволов, например, "\n" для обозначения переноса строки.
  • Одинаковые параметры . В большинстве случаев наличие двух одинаковых ключей в одной секции запрещено (при этом обрабатывается только последний ключ).
  • Одинаковые имена секций . Обычно при наличии нескольких секций с одинаковыми именами в файле обрабатывается лишь последняя из них. Некоторые приложения объединяют содержимое всех таких секций в одну.

Пример реализации

Рассмотрим код, который обрабатывает заданный корректный ini-файл и выводит его в специальном виде:

int main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); int n; cin >> n; cin.get(); map > mp; string from = ""; for (int i = 0; i < n; i++) { string s; getline(cin, s); for (size_t j = 0; j < s.size();) { if (s[j] == " ") s.erase(j, 1); else j++; } if (s.size() == 0 || s == ";") { continue; } if (s == "[") { s.erase(0, 1); s.erase(s.size() - 1, 1); from = s; mp; } else { mp = s.substr(s.find("=") + 1, s.size() - s.find("=")); } } for (map < string, map > :: iterator it = mp.begin(); it != mp.end(); it++) { if (it -> first != "") { cout << "[" << it -> first <<"]" << endl; } for (map < string, string >::iterator itt = mp.begin(); itt != mp.end(); itt++) { cout << itt -> first << "=" << itt -> second << endl; } } return 0; }

См. также

Напишите отзыв о статье ".ini"

Ссылки

Отрывок, характеризующий.ini

– Сожалею, мадонна. Он лишь сказал, что вы сильно ошибались, и что любовь никому ещё не приносила добра. Если это о чём-то вам говорит, Изидора.
Я лишь кивнула, стараясь собрать свои разлетающиеся в панике мысли. И пытаясь не показать Мороне, насколько потрясла меня сказанная им новость, как можно спокойнее произнесла:
– Разрешите ли подлечить вас, монсеньёр? Мне кажется, вам опять не помешает моя «ведьмина» помощь. И благодарю вас за весть... Даже за плохую. Всегда ведь лучше заранее знать планы врага, даже самые худшие, не так ли?..
Мороне внимательно всматривался мне в глаза, мучительно стараясь найти в них ответ на какой-то важный для него вопрос. Но моя душа закрылась от мира, чтобы не заболеть... чтобы выстоять предстоящее испытание... И кардинала встречал теперь лишь заученный «светский» взгляд, не позволявший проникнуть в мою застывшую в ужасе душу...
– Неужели вы боитесь, мадонна? – тихо спросил Мороне. – Вы ведь тысячу раз сильнее его! Почему вы его боитесь?!..
– Он имеет что-то, с чем я пока не в силах бороться... И пока не в силах его убить. О, поверьте мне, ваше преосвященство, если б я только нашла ключ к этой ядовитой гадюке!.. – и, опомнившись, тут же опять предложила: – Позвольте мне всё же заняться вами? Я облегчу вашу боль.
Но кардинал, с улыбкой, отказался.
– Завтра я уже буду в другом, более спокойном месте. И надеюсь, Караффа обо мне на время забудет. Ну, а как же вы, мадонна? Что же станет с вами? Я не могу помочь вам из заключения, но мои друзья достаточно влиятельны. Могу ли я быть полезным вам?
– Благодарю вас, монсеньёр, за вашу заботу. Но я не питаю напрасных надежд, надеясь отсюда выйти... Он никогда не отпустит меня... Ни мою бедную дочь. Я живу, чтобы его уничтожить. Ему не должно быть места среди людей.
– Жаль, что я не узнал вас раньше, Изидора. Возможно, мы бы стали добрыми друзьями. А теперь прощайте. Вам нельзя здесь оставаться. Папа обязательно явится пожелать мне «удачи». Вам ни к чему с ним здесь встречаться. Сберегите вашу дочь, мадонна... И не сдавайтесь Караффе. Бог да пребудет с вами!
– О каком Боге вы говорите, монсеньёр? – грустно спросила я.
– Наверняка, уж не о том, которому молится Караффа!.. – улыбнулся на прощание Мороне.
Я ещё мгновение постояла, стараясь запомнить в своей душе образ этого чудесного человека, и махнув на прощание рукой, вышла в коридор.
Небо развёрзлось шквалом тревоги, паники и страха!.. Где находилась сейчас моя храбрая, одинокая девочка?! Что побудило её покинуть Мэтэору?.. На мои настойчивые призывы Анна почему-то не отвечала, хотя я знала, что она меня слышит. Это вселяло ещё большую тревогу, и я лишь из последних сил держалась, чтобы не поддаваться сжигавшей душу панике, так как знала – Караффа непременно воспользуется любой моей слабостью. И тогда мне придётся проиграть, ещё даже не начав сопротивляться...
Уединившись в «своих» покоях, я «зализывала» старые раны, даже не надеясь, что они когда-либо заживут, а просто стараясь быть как можно сильней и спокойнее на случай любой возможности начать войну с Караффой... На чудо надеяться смысла не было, так как я прекрасно знала – в нашем случае чудес не предвиделось... Всё, что произойдёт, я должна буду сделать только сама.
Бездействие убивало, заставляя чувствовать себя всеми забытой, беспомощной и ненужной... И хотя я прекрасно знала, что не права, червь «чёрного сомнения» удачно грыз воспалённый мозг, оставляя там яркий след неуверенности и сожалений...
Я не жалела, что нахожусь у Караффы сама... Но панически боялась за Анну. А также, всё ещё не могла простить себе гибель отца и Джироламо, моих любимых и самых лучших для меня на свете людей... Смогу ли я отомстить за них когда-либо?.. Не правы ли все, говоря, что Караффу не победить? Что я не уничтожу его, а всего лишь глупо погибну сама?.. Неужели прав был Север, приглашая уйти в Мэтэору? И неужели надежда уничтожить Папу всё это время жила только во мне одной?!..
И ещё... Я чувствовала, что очень устала... Нечеловечески, страшно устала... Иногда даже казалось – а не лучше ли было и правда уйти в Мэтэору?.. Ведь кто-то же туда уходил?.. И почему-то их не тревожило, что вокруг умирали люди. Для них было важно УЗНАТЬ, получить сокровенное ЗНАНИЕ, так как они считали себя исключительно одарёнными... Но, с другой стороны, если они по-настоящему были такими уж «исключительными», то как же в таком случае они забыли самую простую, но по-моему очень важную нашу заповедь – не уходи на покой, пока в твоей помощи нуждаются остальные... Как же они могли так просто закрыться, даже не оглядевшись вокруг, не попытавшись помочь другим?.. Как успокоили свои души?..

Для Haskell. Потом я решил, что лучше разбить статью на 3 части. В первой части я расскажу как написать контекстно-свободную грамматику для описания содержимого ini-файла.

ini файлы

Файлы с расширением ini широко распространены не только в мире Windows, но и в других системах (к примеру, php.ini). Формат ini-файла очень прост: файл разделён на секции, в каждой секции может находится произвольное число записей вида «параметр=значение». Имена параметров в разных секциях могут совпадать.
[секция_1]
параметр1=значение1
параметр2=значение2

[секция_2]
параметр1=значение1
параметр2=значение2

Каждый параметр может быть адресован через имя секции и имя параметра: что-нибудь вроде "секция_1"."параметр2" .

В ini-файлах предусмотрены комментарии - строки начинающиеся с ";".

Строим грамматику

Давайте попробуем описать этот формат виде контекстно свободной грамматики в расширенной нотации Бэкуса-Наура (надеюсь, что будет понятно даже тем, кто не знаком с ней).

Опишем что из себя представляет ini файл. Для этого опишем все конструкции от самых сложных (собственно сам ini-файл) к самым простым (что такое идентификатор). Каждой такой конструкции сопоставляется специальное обозначение (нетерминал ), которое определяется через другие нетерминалы и обычные символы (терминалы), которые я буду
задавать в кавычках.

  • Данные ini-файла (inidata) содержат несколько секций (фигурные скобки означают повторение любое количество раз).
    inidata = {section} .
  • Секция состоит из названия секции, заключённого в квадратные скобки, за которым со следующей строки идет несколько записей (параметров).
    section = "[", ident, "]", "\n", {entry} .
  • Запись состоит из имени параметра, знака "=", значения параметра и заканчивается концом строки.
    entry = ident, "=", value, "\n" .
  • Определим что такое идентификатор: всё что состоит из букв, цифр или знаков "_.,:(){}-#@&*|" (в действительности могут встречаться и другие символы).
    ident = {letter | digit | "_" | "." | "," | ":" | "(" | ")" | "{" | "}" | "-" | "#" | "@" | "&" |"*" | "|"} .

    Это определение не совсем верно, т.к. идентификатор должен состоять хотя бы из одного символа. Переделаем так:

  • Теперь определим что является значением: всё кроме конца строки (для краткости пришлось расширить нотацию обозначение not)
    value = {not "\n"} .
Осталось учесть, что некоторые парсеры/люди любят ставить дополнительные пробелы и пустые строки.
Для этого нам потребуется ввести ещё два нетерминала: пробельные символы используемые в строке и просто пробельные символы.

Пробелы могут быть почти где угодно. Поэтому немножко подкорректируем грамматику:
inidata = spaces, {section} .
section = "[", ident, "]", stringSpaces, "\n", {entry} .
entry = ident, stringSpaces, "=", stringSpaces, value, "\n", spaces .
ident = identChar, {identChar} .
identChar = letter | digit | "_" | "." | "," | ":" | "(" | ")" | "{" | "}" | "-" | "#" | "@" | "&" |"*" | "|" .
value = {not "\n"} .
stringSpaces = {" " | "\t"} .
spaces = {" " | "\t" | "\n" | "\r"} .

Вот в общем-то и всё, что касается грамматики =).

Кто-то, наверное, заметил, что я ничего не сказал про комментарии. Я не забыл - просто их проще «ручками» вырезать =) (в качестве упражнения можете подправить грамматику так, чтобы она комментарии учитывала).

Важно: я немного схитрил и построил грамматику так, чтобы в ней не было левой рекурсии. Обе рассматриваемые мною библиотеки строят

Для Haskell. Потом я решил, что лучше разбить статью на 3 части. В первой части я расскажу как написать контекстно-свободную грамматику для описания содержимого ini-файла.

ini файлы

Файлы с расширением ini широко распространены не только в мире Windows, но и в других системах (к примеру, php.ini). Формат ini-файла очень прост: файл разделён на секции, в каждой секции может находится произвольное число записей вида «параметр=значение». Имена параметров в разных секциях могут совпадать.
[секция_1]
параметр1=значение1
параметр2=значение2

[секция_2]
параметр1=значение1
параметр2=значение2

Каждый параметр может быть адресован через имя секции и имя параметра: что-нибудь вроде "секция_1"."параметр2" .

В ini-файлах предусмотрены комментарии - строки начинающиеся с ";".

Строим грамматику

Давайте попробуем описать этот формат виде контекстно свободной грамматики в расширенной нотации Бэкуса-Наура (надеюсь, что будет понятно даже тем, кто не знаком с ней).

Опишем что из себя представляет ini файл. Для этого опишем все конструкции от самых сложных (собственно сам ini-файл) к самым простым (что такое идентификатор). Каждой такой конструкции сопоставляется специальное обозначение (нетерминал ), которое определяется через другие нетерминалы и обычные символы (терминалы), которые я буду
задавать в кавычках.

  • Данные ini-файла (inidata) содержат несколько секций (фигурные скобки означают повторение любое количество раз).
    inidata = {section} .
  • Секция состоит из названия секции, заключённого в квадратные скобки, за которым со следующей строки идет несколько записей (параметров).
    section = "[", ident, "]", "\n", {entry} .
  • Запись состоит из имени параметра, знака "=", значения параметра и заканчивается концом строки.
    entry = ident, "=", value, "\n" .
  • Определим что такое идентификатор: всё что состоит из букв, цифр или знаков "_.,:(){}-#@&*|" (в действительности могут встречаться и другие символы).
    ident = {letter | digit | "_" | "." | "," | ":" | "(" | ")" | "{" | "}" | "-" | "#" | "@" | "&" |"*" | "|"} .

    Это определение не совсем верно, т.к. идентификатор должен состоять хотя бы из одного символа. Переделаем так:

  • Теперь определим что является значением: всё кроме конца строки (для краткости пришлось расширить нотацию обозначение not)
    value = {not "\n"} .
Осталось учесть, что некоторые парсеры/люди любят ставить дополнительные пробелы и пустые строки.
Для этого нам потребуется ввести ещё два нетерминала: пробельные символы используемые в строке и просто пробельные символы.

Пробелы могут быть почти где угодно. Поэтому немножко подкорректируем грамматику:
inidata = spaces, {section} .
section = "[", ident, "]", stringSpaces, "\n", {entry} .
entry = ident, stringSpaces, "=", stringSpaces, value, "\n", spaces .
ident = identChar, {identChar} .
identChar = letter | digit | "_" | "." | "," | ":" | "(" | ")" | "{" | "}" | "-" | "#" | "@" | "&" |"*" | "|" .
value = {not "\n"} .
stringSpaces = {" " | "\t"} .
spaces = {" " | "\t" | "\n" | "\r"} .

Вот в общем-то и всё, что касается грамматики =).

Кто-то, наверное, заметил, что я ничего не сказал про комментарии. Я не забыл - просто их проще «ручками» вырезать =) (в качестве упражнения можете подправить грамматику так, чтобы она комментарии учитывала).

Важно: я немного схитрил и построил грамматику так, чтобы в ней не было левой рекурсии. Обе рассматриваемые мною библиотеки строят

Как Вы вероятно уже поняли, командные строки могут стать весьма длинными и сложными, особенно если Вы используете их, чтобы генерировать множественные выводы одновременно. Чтобы решить эти проблемы, Help & Manual позволяет Вам создавать внешние файлы, вызывающие .INI файлы, которые содержат все параметры, которые Вы хотите обработать, включая вывод в так много других форматов, как Вы хотите.

Если Вы комбинируете его с пакетным файлом в каталоге программы Help & Manual и создаете ярлык к этому файлу на вашем компьютере, Вы можете автоматизировать весь процесс и выполнить многократный комплекс компиляции единственным щелчком мыши.

Как создать.INI файл:

Используйте редактора текста, чтобы создать файл простого текста с расширением .INI (например batchcompile.ini ) в каталоге проекта, для которого Вы хотите выполнить компиляцию.

Пример:

CHM=F:\Project Files\Help Project\Help\WidgetHelp.chm
I=CHM,FINALBUILD
KEEPTEMP
PDF=F:\Project Files\Help Project\PDF\WidgetHelp.pdf
I=PDF,FINALBUILD
Template=usletter.mnl
L=F:\Project Files\Help Project\Logs\compilerlog.txt

Что делает этот пример.INI файла:

Локальные и глобальные переключатели для множественного вывода

Локальные переключатели:

Следующие переключатели являются "локальными". Они должны быть применены к каждому выходному формату индивидуально, вставляя их после переключателя формата, для которого они должны примениться и перед следующим переключателем формата.

Глобальные переключатели:

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

См. Синтаксис для получения дополнительной информации об отдельных переключателях и параметрах.

Как использовать.INI файл из командной строки:

Чтобы использовать .INI файл, только определите его как первый и единственный параметр после проектного имени файла в командной строке. Если он сохранен в проектном каталоге, Вы не должны определять путь для него. Если он сохранен где-нибудь еще, Вы должны определить путь.

Как обычно, пример предполагает, что Вы работаете из каталога программы Help & Manual.

Пример:

Это запускает Help & Manual, открывает WidgetHelp.hmx и затем выполняет все команды, определенные переключателями и параметрами, содержащимися в batchcompile.ini .

Как использовать .INI файл из пакетного файла:

Вы можете сделать этот шаг вперед и автоматизировать процесс полностью, помещая командную строку (или строки!) со ссылкой на .INI файл в пакетный файл. Потом Вы можете создать ярлык к пакетному файлу и выполнить весь комплекс процесса компиляции, дважды щелкая на ярлыке. Это делается так:

Пример:

@ECHO OFF
helpman.exe "D:\Help Project\Widget\WidgetHelp.hmx" batchcompile.ini
helpman.exe "D:\Help Project\Widget Two\WidgetTwoHelp.hmx" batchtwo.ini

См. также: