[fpc-devel] TMemIniFile proposed patch

Patrick Chevalley pch at ap-i.net
Sat Feb 4 17:22:09 CET 2006


I notice my application take a lot of time while writing it's 
configuration to a .ini file using TMemIniFile, up to 10 seconds for a 
12K file. With the proposed patch it do the same instantly.

This is because TMemIniFile do not implement it's own WriteString 
function but use TIniFile one.
This imply to write the full file each time a string is changed.

Delphi TMemIniFile use a buffered write as describe in this paragraph 
extracted from the Delphi help:

Unlike the TIniFile object, which also encapsulates INI file data, 
TMemIniFile buffers all changes to the INI file. The INI file is read 
once, when the object is first created. ... After the data is read, any 
changes to the data are stored in memory. To write the data from memory 
back to the associated INI file, call the UpdateFile method.

There is no problem while reading the file because TIniFile.ReadString 
is already buffered contrary to the Delphi implementation.

I hope this change to fcl/inc/inifiles.pp (or a variation) can be 
applied to the fcl.

Patrick Chevalley
-------------- next part --------------
A non-text attachment was scrubbed...
Name: inifiles.patch
Type: text/x-patch
Size: 1518 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20060204/2d37a716/attachment.bin>

More information about the fpc-devel mailing list