Для начала скажу, что ini-файлы мне очень нравятся. И была
бы моя воля... я бы их использовала везде-везде. Просто взгляните на его структуру,
и вы все поймете:
[Раздел]
Параметр = значение параметра
Или же реальный пример - химический состав чугуна:
[Чугун]
C, %=4.4
Mn, %=0.35
Si, %=0.75
S, %=0.02
P, %=0.06
Ni, %=0
Cr, %=0
Cu, %=0.1
Fe, %=94.3
Вам требуется создать файл
IniIni:=TIniFile.Create
предварительно не забыв упомянуть в uses блок inifiles и в
var IniIni:TIniFile, иначе все наше создание будет подчеркнуто красным.
И сразу без каких-либо приготовлений и разминок, записать
первую строчку:
IniIni.WriteFloat('Чугун','C, %',4.4) , затем вторую:
IniIni.WriteFloat('Чугун','Mn, %',0.35) и так далее. Так получится приведенный
выше файл.
Данные из только что созданного файла также можно легко
прочитать
IniIni.ReadFloat('Чугун','C, %',0) и присвоить переменной (ноль в
качестве параметра при чтении - это всего лишь значение по умолчанию на случай,
если такового раздела или параметра не найдется).
При этом обратите внимание, что не требуется делать
каких-либо лишних операций с типом данных. Нужно записать числа с плавающей
точкой, так и пишете WriteFloat, требуется булевые - WriteBoolean, и так далее.
Задаете раздел, параметр, значение - обработчик сам создает
приведенную структуру. Ну разве не прелесть?:) Все явно, просто и понятно -
таких вещей не то, что в программировании, в жизни очень и очень мало, поэтому
просто необходимо ими пользоваться.
Например, заменить небольшую базу данных малюсеньким .ini
файлом, обозначив разделы каким-либо неповторяющимся параметром - например
материалом (Чугун, А4 и т.д.), а остальные - переписать по названиям колонки.
Разделы можно считывать методом IniIni.ReadSections([тут переменная типа TStringList]), а значения искать по
названиям параметров. Но скажу прямо - в случаях огромных таблиц этот способ
будет далек от рациональности.
Поэтому обязательно помните, что применение ini-файлов
достаточно ограничено целями создаваемого вами программного обеспечения: одно
дело когда вам требуется доступ к определенным пусть изменяемым параметрам того
или иного процесса, а другое дело - целая таблица возможных значений,
принадлежащих одному признаку объекта. В последнем варианте наиболее
эффективным будет сохранение в привычный текстовый файл без лишних раздумий или
же создание полноценной базы данных. Ведь применение inifiles призвано прежде
всего рационализировать работу, а не сковать действия программиста попытками
отыскать нужные значения. А для того, чтобы отдохнуть после работы, с ini-файлами в том числе, окунитесь в новый красочный мир Perfect World
|