Для чего предназначены 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"} .

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

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

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

You"re here because you have a file that has a file extension ending in .ini. Files with the file extension .ini can only be launched by certain applications. It"s possible that .ini files are data files rather than documents or media, which means they"re not meant to be viewed at all.

what is a .ini file?

Files in the INI format are generated by the Windows OS to serve as settings files that contain configurations of the Windows-based computer. Also called Windows initialization files, these INI files are appended with the .ini extension and are updated whenever the user or the system makes certain changes to the original or default configurations of the Windows OS. These INI files are used by the system to incorporate into the Windows-based computer the settings and configurations found in these .ini files. An INI file can be opened using a text editor, but this is not recommended to be performed by users without the necessary technical knowledge and experience for changing or editing the configurations and settings that are stored in these Windows initialization files. As of this writing, more recent versions of the Windows OS are implemented with the function of deploying XML files to replace some of the functionalities of these .ini files as default settings files that are used to embed global-wide and user-specific configurations across the Windows OS.

how to open a .ini file?

Launch a .ini file, or any other file on your PC, by double-clicking it. If your file associations are set up correctly, the application that"s meant to open your .ini file will open it. It"s possible you may need to download or purchase the correct application. It"s also possible that you have the correct application on your PC, but .ini files aren"t yet associated with it. In this case, when you try to open a .ini file, you can tell Windows which application is the correct one for that file. From then on, opening a .ini file will open the correct application.

applications that open a .ini file

Microsoft Notepad

Microsoft Notepad

Notepad is a basic text editor used to create plain documents. It is commonly used to view or edit text (.txt) files, and a simple tool for creating Web pages, and supports only the basic formatting in HTML documents. It also has a simple built-in logging function. Each time a file that initializes with .log is opened, the program inserts a text timestamp on the last line of the file. It accepts text from the Windows clipboard. This is helpful in stripping embedded font type and style codes from formatted text, such as when copying text from a Web page and pasting into an email message or other “What You See Is What You Get” text editor. The formatted text is temporarily pasted into Notepad, and then immediately copied again in stripped format to be pasted into the other program. Simple text editors like Notepad may be utilized to change text with markup, such as HTML. Early versions of Notepad offered only the most basic functions, such as finding text. Newer versions of Windows include an updated version of Notepad with a search and replace function (Ctrl + H), as well as Ctrl + F for search and similar keyboard shortcuts. It makes use of a built-in window class named edit. In older versions such as Windows 95, Windows 98, Windows Me and Windows 3.1, there is a 64k limit on the size of the file being edited, an operating system limit of the EDIT class.

Microsoft WordPad

Apple TextEdit

Apple TextEdit is a text editor program and an open-source word processor too, which is first used in NeXTSTEP and OPENSTEP, but now integrated in most recent versions of Mac OS X. It is also considered a GNUstep application for other operating systems that are Unix based, like Linux computers. This program is operated by Advanced Typography by Apple so expect several advanced typography related features. The main function of this software is to read and write documents in plain text, HTML formats, Rich Text Format, and Rich Text Format Directory. It can also open Simple Text files but does not have the capability to save documents of that format. Mac OS X version 10.3 supports Microsoft Word documents, while Mac OS X version 10.4 can open and save Word documents in XML file. Mac OS X version 10.5 is able to read and write Office Open XML as well as OpenDocument Text. Features included on TextEdit are formatted text support, addition of graphics, animations and other multi-media contents, automatic adjustment of letter spacing, as well as reading and writing support of character encodings.

a word of warning

Be careful not to rename the extension on .ini files, or any other files. This will not change the file type. Only special conversion software can change a file from one file type to another.

what is a file extension?

A file extension is the set of three or four characters at the end of a filename; in this case, .ini. File extensions tell you what type of file it is, and tell Windows what programs can open it. Windows often associates a default program to each file extension, so that when you double-click the file, the program launches automatically. When that program is no longer on your PC, you can sometimes get an error when you try to open the associated file.

Ini tialization 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 ; комментарий о разделе 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 файл может содержать:

  • пустые строки ;

Наиболее часто встречаемой проблемой, из-за которой пользователи не могут открыть этот файл, является неверно назначенная программа. Чтобы исправить это в ОС Windows вам необходимо нажать правой кнопкой на файле, в контекстном меню навести мышь на пункт "Открыть с помощью", а выпадающем меню выбрать пункт "Выбрать программу...". В результате вы увидите список установленных программ на вашем компьютере, и сможете выбрать подходящую. Рекомендуем также поставить галочку напротив пункта "Использовать это приложение для всех файлов INI".

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

  • Попробуйте найти нужный файл в другом источнике в сети интернет. Возможно вам повезет найти более подходящую версию. Пример поиска в Google: "Файл filetype:INI" . Просто замените слово "файл" на нужное вам название;
  • Попросите прислать вам исходный файл еще раз, возможно он был поврежден при передаче;

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

Что еще может вызвать проблемы?

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

Вы хотите помочь?

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

Понравилась статья? Поделиться с друзьями: