Описание формата ini-файлов

Формат допустимых строк

1.    Все  ini-файлы, используемые в Продукте С-Терра Юнит, могут содержать следующие типы строк:

Строка имени секции - строка, обозначающая начало новой секции переменных;

Строка описания переменной - строка, содержащая имя и значение переменной;

Строка комментариев - строка, содержащая комментарии или пустая строка.

Строка имени секции имеет следующий формат:

[SECTION_NAME]

Пробелы и символы табуляции, стоящие до открывающей и после закрывающей квадратных скобок, игнорируются. Именем секции считается строка, помещенная между квадратными скобками (любой символ является значимым). Допускается пустое имя секции - [].

Строка описания переменной имеет следующий формат:

var_name = var_value 

Пробелы и знаки табуляции, стоящие до и после var_name и var_value  игнорируются.

Строка комментариев имеет следующий формат:

! comment string   

Пробелы и знаки табуляции, стоящие до символа «!» игнорируются.

Пустая строка (не содержащая ничего, кроме пробелов и знаков табуляции) приравнивается к строке комментария.

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

 

2.    Повторяющиеся имена секций.

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

 

3.    Повторяющиеся имена переменных.

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

4.    Переменные, не принадлежащие ни одной из секций.

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

File01.ini

 Var01=value01

 Var02=value02

 Vat03=valeue03

 

File02.ini

 []

 Var01=value01

 Var02=value02

 Vat03=valeue03

 

5.    Перезапись ini-файла.

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

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

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

6.    Принадлежность строк комментариев.

Любая строка комментариев, расположенная перед строкой имени секции или строкой описания переменной, считается принадлежащей этой строке.