Файлы инициализации. Структура файла инициализации

Страницы работы

Содержание работы

Файлы инициализации

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

В интерфейсе Win32 API полностью поддерживаются все функции файлов инициализации. Однако данные конфигурации приложений Win32 рекомендуется (и даже требуется ради соответствия фирменному знаку) сохранять в системном реестре (функции которого подробно рассматриваются в главе 19). Тем не менее, функции файлов инициализации все еще остаются весьма полезными в плане сохранения и выборки информации из текстовых файлов, в частности, файлов установки, называемых также INF-файлами.

Структура файла инициализации

Подразделения INI-файла, называемые также разделами (sections), отмечены заключенными в квадратные скобки строками, называемыми именами разделов (section names). В разделе может храниться любое число ключей. Ключ (key) представляет собой всего лишь поименованный параметр настройки конфигурации, который может быть установлен или запрошен программным путем. Строка присвоения ключу некоторого значения состоит из имени ключа (key name) или признака (tag), знака равенства и значения ключа (key value), возвращаемого системой для данного ключа. В одной строке можно выполнить лишь одно присвоение значения ключу. Комментарии обозначаются точкой с запятой. А вот размещение комментариев в строках имен разделов не допускается. Ниже показан пример, как может выглядеть раздел INI-файла:

[PREFERENCES]

COLOR  =  BLUE ; Комментарий

SHAPE  = CIRCLE

; Комментарий может также представлять собой отдельную строку. LETTERS="a;b;c;d"   ; Наличие точки с запитой допускается во взятом в ; кавычки значении ключа

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

Доступ к файлам инициализации

Большинство файлов инициализации представляет собой также приватные профильные файлы (private profile files). Этот термин первоначально был введен в Windows 3.1 с тем, чтобы провести различие между INI-файлами для приложений и файлом WIN.INI (единственным INI-файлом, существовавшим до появления Windows 3.1). Так, функции WritePrivateProfileString и WritePrivateProfilelnt позволяют сохранять в приватном профильном файле соответственно строковые и целые значения ключа. Функции GetPrivateProfileString и GetPrivateProfilelnt позволяют выбирать из приватного профильного файла соответственно строковые и целые значения. Функции GetPrivateProfileSection и WritePrivateProfileSectionName позволяют выполнять чтение и запись целых разделов INI-файла. Кроме того, в Win32 появилась функция GetPrivateProfileSectionName интерфейса API, которая возвращает имена всех разделов, определенных в INI-файле.

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

Для доступа к файлу WIN.INI в приложениях используется параллельный набор функций интерфейса API. Так, функции GetProfileString и GetProfilelnt осуществляют соответственно выборку строковых и целых значений ключей из файла WIN.INI. Функции WriteProfileString и WriteProfilelnt сохраняют в файле WIN.INI соответственно строковые и целые значения. Функции GetProfileSection и WriteProfileSection допускают чтение и запись целых разделов в файл WIN.INI. Однако файл WIN.INI ничем особенным не отличается от остальных файлов инициализации, поэтому функции интерфейса API для прватных профильных файлов применимы и к файлу WIN.INI, если он указан в формате имени INI-файла.

Отображение приватных INI-файлов

В Windows 2000 приватные профильные файлы вместо файлов инициализации могут отображаться в системный реестр. Подобное отображение происходит при указании файла инициализации и соответствующего раздела в системном реестре под ключом HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\IniFaeMapping Отобоажение окажется вполне вероятным в том случае, если в приложении будут видоизменены файлы инициализации компонентов системы, в частности, файлы CONTROL.INI, SYSTEM.INI и WINFILE.INI. В подобного рода случаях функции приватных профильных файлов воздействуют на информацию в системном реестре, а не в файле инициализации. Для обнаружения информации об инициализации в функциях Win32, предназначенных для профильных файлов, используется следующая процедура:

Похожие материалы

Информация о работе