Что такое ини. Создаём парсер для ini-файлов

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

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

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

Поскольку в первой версии Windows реестра как такового не существовало, все настройки операционной системы хранились в одном файле WIN.INI. В версии 3.0 появился еще один подобный файл с названием SYSTEM.INI. После этого число конфигурационных файлов INI в Windows стало стремительно расти.

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

Они не поддерживают юникод, двупоточную запись, точную настройку доступа, в них нельзя хранить двоичные данные. Кроме того они подвержены атакам отказа в обслуживании и к тому же медленно обрабатываются. Все это привело к тому, что начиная с версии 95, объектом хранения настроек в Windows стала централизованная база данных, ныне известная как .

Переход не был резким, часть данных по-прежнему хранилась в конфигурационных файлах, да и был еще тогда довольно примитивным. Но выбор был сделан окончательно и бесповоротно, и уже в XP практически все важные настройки "переехали" в .

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

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

Например, параметр IconFile отвечает за стандартный значок каталога, Owner запрещает или открывает к нему доступ, а InfoTip позволяет добавлять к папкам всплывающие текстовые комментарии по типу файлов и ярлыков.

Другие типы конфигурационных файлов, таких как сontrol.ini, oeminfo.ini и boot.ini сегодня считаются устаревшими и практически не используются.

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

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

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

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

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

В Windows, .ini файл выполняет важную роль, например файл "boot.ini", находится в корневом каталоге системного диска и отвечает за управление процессом начальной загрузки, открыть файл возможно при помощи любого текстового редактора либо посредством инструмента "msconfig.exe", расположенного в настройках системы. В случае необходимости, корректно открыть файл INI, можно при помощи таких утилит, как Microsoft Notepad, Microsoft WordPad и так далее.

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

В самом простейшем случае требуется сохранить только 5 параметров – состояние окна (свернутое, развернутое), его положение от левой и верхней границы рабочего стола, его ширину и высоту. А если вы будете создавать более сложную программу, с панелью настроек, где есть куча чекбоксов и радиокнопок? Там пользователь может изменить ваши настройки "по умолчанию", и поставить собственные. Представьте, если пользователь потратил полчаса на то, чтобы настроить вашу программу "под себя", а при повторном запуске обнаружил, что все его настройки не сохранились!

Для сохранения пользовательских настроек существует два способа – ini-файлы и системный реестр Windows. Каждый из этих способов имеет свои плюсы и минусы.

Если вы сохраняете настройки в реестр Windows, то они скрыты от пользователя, следовательно, он ничего не сможет в них испортить. С другой стороны, если на компьютере зарегистрированы несколько пользователей, то каждый сможет изменить настройки программы "под себя". Минус в том, что если Windows будет переустановлена, придется переустанавливать и программу, так как она будет отсутствовать в реестре.

Если же вы сохраняете настройки в ini-файл, программа сохранит настройки и при переустановке операционной системы. Кроме того, сохранение настроек в ini-файл реализовать проще. В этой лекции мы научимся работать только с ini-файлами.

У INI – файлов есть много преимуществ. С ними работать просто и удобно, они поддерживают три типа данных – String, Integer и Boolean. Кроме того, если бы мы сохраняли настройки в простой текстовый файл, то при изменении одной из настроек требовалось бы перезаписывать весь файл, а ini-файл позволяет перезаписать только этот параметр.

Конечно, есть и некоторые правила использования такого рода файлов.

Первым делом, если вы собираетесь работать с ini-файлами, в секцию uses, сразу под словом interface, требуется добавить модуль inifiles, в нем описаны все данные для работы с ini-файлами. Добавить модуль просто – после последнего указанного в списке модуля стоит точка с запятой. Замените ее на запятую, добавьте слово inifiles, а затем поставьте точку с запятой.

Далее. По умолчанию, ini-файлы создаются в директории, где установлен Windows. Там появляется файл с расширением *.ini и вашими настройками. Это не всегда удобно, особенно если предположить, что Windows может быть переустановлен. Гораздо лучше создавать файл в той директории, где установлена ваша программа. А как узнать эту директорию?

ExtractFilePath(Application.ExeName)

Изучим создание ini-файла на практике. Создайте новое приложение. В секцию uses добавьте модуль inifiles.

Прежде всего, пропишем сохранение параметров при закрытии программы. Для этого создайте обработчик события OnDestroy для формы. Такое событие случается при разрушении объекта форма, то есть, при завершении работы с программой. Создайте раздел var и пропишите там переменную типа ini-файл:

Обратите внимание, что мы создаем файл в той же директории, откуда запущена программа. Если бы мы указали просто

ini:= TInifile.Create("my.ini");

то файл был бы создан в директории Windows! Далее сохраним позицию окна, то есть свойства Left и Top формы:

//сохраняем позицию окна:

ini.WriteInteger("Position", "L", Form1.Left);

ini.WriteInteger("Position", "T", Form1.Top);

У ini-файла есть три процедуры для записи данных различных типов. WriteInteger, WriteString и WriteBool. Соответственно, эти функции записывают целое число, строку и логический тип. У этих функций есть по 3 параметра. Первый – это раздел ini – файла. В самом файле он выходит в квадратных скобках. Раздел вы можете назвать как угодно, не обязательно Position. Вторым параметром является название сохраняемого параметра, в примере этот параметр мы указали в виде букв "L" и "T", хотя можно было бы написать и "Left", "Top" или как-то иначе.

Третьим параметром функции является его значение. Поскольку свойства Left и Top формы имеют значения в виде целого числа, мы используем функцию для записи целых чисел WriteInteger. В результате приведенного примера в ini – файле появится надпись, подобная этой:

//сохраняем размеры окна:

ini.WriteInteger("Size", "W", Form1.Width);

ini.WriteInteger("Size", "H", Form1.Height);

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

//закрываем файл:

ini.Free;

Все, файл закрыт и настройки сохранены. Сохраните проект, откомпилируйте его и посмотрите, как он работает. Откройте созданный ini – файл, это простой текстовый файл, который вы сможете прочитать, и даже отредактировать.

Однако мы сделали только половину дела. Настройки то мы сохранили, а как их прочитать? Делается все это точно также, только наоборот. Вместо свойства разрушения формы используем свойство ее создания (onCreate), вместо записи используем чтение, и вместо того, чтобы значения свойств формы записывать в файл, мы будем читать их из файла и присваивать эти значения свойствам форм. Соответственно, мы имеем три процедуры считывания параметров из ini-файла: ReadInteger, ReadString и ReadBool.

Итак, делаем обработчик событий для формы onCreate:

{при создании формы}

procedure TForm1.FormCreate(Sender: TObject);

ini: TIniFile; //объявляем переменную типа inifile

//теперь создаем ее:

ini:= TInifile.Create(ExtractFilePath(Application.ExeName)+"my.ini");

//применяем позицию окна:

Form1.Left:= ini.ReadInteger("Position", "L", 329);

Form1.Top:= ini.ReadInteger("Position", "T", 261);

//читаем размеры окна:

Form1.Width:= ini.ReadInteger("Size", "W", 384);

Form1.Height:= ini.ReadInteger("Size", "H", 312);

//закрываем файл:

ini.Free;

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

При создании формы придайте ей подходящий размер и положение и посмотрите значения свойств Left, Top, Width и Height. Эти значения вы и запишете в качестве принятых по умолчанию. Если файла еще не было или произошла какая-то ошибка при чтении данного параметра, например, не найдена нужная строка, будет применяться значение по умолчанию. Если же нужная строка прочитана, то будет применяться то значение, которое указано в ней.

Сохраните проект, откомпилируйте его и посмотрите, как работает программа. Полученный ini-файл будет содержать такой текст:

Попробуйте перед запуском программы изменить какой-нибудь параметр, например, укажите

Затем запустите программу, и посмотрите, как изменится положение окна! Кстати, это хороший способ прятать программу. Если вы для свойства Left укажите большее число, чем имеет свойство Width (ширина окна), и при этом сделаете число отрицательным, окно программы как бы сдвинется влево за пределы экрана. Программа запущена, ее видно в системной строке, а окна то и нет!

Сдвиньте окно рабочей программы и выйдите из нее. Снова запустите – положение окна, которое было последним, сохранилось!

Давайте продолжим программу и создадим строковый параметр. Установите на форму компонент Label, в свойстве Caption которого напишите: "Введите новый заголовок окна". Ниже установите компонент Edit, в него пользователь будет вводить текст. Еще ниже – кнопку с надписью "Применить".

Удалите текст из компонента Edit, в обработчике кнопки напишите следующее:

Form1.Caption:= Edit1.Text;

Предполагается, что вы не меняли названий формы или Edit. Если же вы сменили имя формы, к примеру, на fMain, то напишите

//сохраняем заголовок формы:

ini.WriteString("Param", "C", Form1.Caption);

А в процедуре onCreate, опять же, перед закрытием ini-файла, добавьте:

//читаем заголовок формы:

Form1.Caption:= ini.ReadString("Param", "C", "Программа");

Как видите, работа со строками мало отличается от работы с числами! Сохраните проект, скомпилируйте и посмотрите, как он работает. Введите новое название окна, нажмите кнопку "Применить", выйдите из программы и снова откройте ее. Текст в системной строке программы должен сохраниться.

Теперь поработаем с логическим параметром. Установите на форму один CheckBox. В его свойстве Caption напишите "Параметр". Нам, собственно, не важно, какой именно параметр можно сохранить, например, разрешать ли нажатие на кнопку, разрешать ли показ формы "О программе", видимый или невидимый будет какой-то компонент… Параметров, которые вы, возможно, захотите сохранить, может быть очень много. Сейчас нам важно одно: свойство Checked компонента CheckBox может быть либо True (параметр включен), либо False (параметр выключен). Вот это нам и нужно сохранить в ini-файл, а затем считать это из него.

Перед закрытием ini-файла в процедуре события onDestroy запомним состояние флажка:

//запоминаем флажок:

ini.WriteBool("Param", "CB1", CheckBox1.Checked);

Если флажок выключен, то вместо False в параметр ini-файла запишется 0. Если включен – запишется 1.

Теперь перед закрытием ini-файла в процедуре события onCreate добавим строки для считывания данных из ini-файла:

//читаем состояние флажка:

CheckBox1.Checked:= ini.ReadBool("Param", "CB1", True);

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

Не существует подробной официальной спецификации формата. Начиная с 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

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

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

Для чего нужен файловый формат.INI?

Как сокращение от "Initialization" (инициализация) расширение .ini служит для обозначения инициализационных/конфигурационных файлов (INI) в среде Microsoft (MS) Windows и других ОС. Исторически INI-файлы десятилетиями использовались в MS-DOS и MS Windows для хранения конфигурационных настроек системы и приложений.

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



В MS Windows файлы INI выполняют несколько важных задач конфигурации системы. К примеру, файл "boot.ini " в корневом каталоге системного диска управляет процессом начальной загрузки, в то время как файлы "win.ini " and "system.ini " используются для совместимости со старыми приложениями. Эти три файла можно редактировать в любом текстовом редакторе или при помощи средства "Настройка системы" (msconfig.exe).

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

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

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

Программы для открытия или конвертации INI файлов

Вы можете открыть файлы INI с помощью следующих программ: 
Статьи по теме: