Формат допустимых строк
1. Все ini-файлы, используемые в продукте S-Terra Gate, могут содержать следующие типы строк:
· Строка имени секции – строка, обозначающая начало новой секции переменных
· Строка описания переменной – строка, содержащая имя и значение переменной
· Строка комментариев – строка, содержащая комментарии или пустая строка.
Строка имени секции имеет следующий формат:
[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. Принадлежность строк комментариев.
Любая строка комментариев, расположенная перед строкой имени секции или строкой описания переменной, считается принадлежащей этой строке.