пятница, 25 сентября 2009 г.

Использование в Delphi класса TMemIniFile

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

Для обхода этого неудобства я использовал класс TMemIniFile. Он не имеет ограничения в 64 килобайта. Работа с ним точно такая же, как и у класса TIniFile. Однако, работает он намного быстрее. Суть в том, что операции с данными происходят в буфере памяти. Единственное отличие в работе TMemIniFile от TIniFile - при сохранении надо вызывать метод UpdateFile.



uses IniFiles;
...
var
ini: TMemIniFile;
begin
ini:=TMemIniFile.Create(ChangeFileExt( Application.Exename,'.ini'));
try
ini.WriteString('ini_section','parameter1','value');
ini.WriteInteger('ini_section','parameter2', 100);
finally
ini.UpdateFile;
ini.Free;
end;
end;

То есть необходимым оказалось всего несколько изменений кода - поменять класс и добавить строку при сохранении ini.UpdateFile.