View Issue Details

IDProjectCategoryView StatusLast Update
0005765JEDI VCL00 JVCL Componentspublic2012-02-14 17:10
ReporterRHoekAssigned Tojfudickar 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.40 
Target VersionFixed in Version 
Summary0005765: Optionally use TIniFile in stead of TMemIniFile in TJvAppIniFileStorage
DescriptionIn some cases (when using multiple TJvAppIniFileStorage components pointing to the same file) it's required to write changed settings immediately to the Ini-file.

When using the TMemIniFile, these settings are only written in memory, so an other instance cannot read these settings.

When using TIniFile, the settings are written directly.

So I think it would be nice to have the user specify a property of the TJvAppIniFileStorage, which allows the user to determine which underlaying Ini-component he/she want's to use.
TagsNo tags attached.

Activities

jfudickar

2012-01-20 20:23

developer   ~0019328

What about activating AutoFlush and AutoReload?

RHoek

2012-01-23 09:31

reporter   ~0019345

This will give more IO then only using the direct IniFile approach...

Also, when using the AutoReload, it will always reload the file when something is read (as far is I understand the code).

It would be nicer to have something check the date/time before reloading the file.... (and compare it to the date/time the file has been loaded the last time).

But this way a user can choose...
* I think I'll have a try on modifying it localle and see whether there are significant problems....

jfudickar

2012-01-23 09:40

developer   ~0019346

Hi,
sorry but I do not understand why the IO will be increased in opposit to using the TIniFile.
When different users/sources are working on the same file, then there will be no other way then reading the file again (indepent from MemIniFile or IniFile).

The idea of checking the date/time of the file (in combination with AutoReload) has merrit and I think this is something we should have a look for.

Regards
Jens

RHoek

2012-01-23 15:01

reporter   ~0019348

> Sorry but I do not understand why the IO will be increased in opposit to using the TIniFile.

I'm expecting the Windows Ini-routines to be more efficient regarding data reading/writing (because less data is needed to be written/read).
I did not test this explicitly...

I'm just looking at possible side effects of turning on the AutoFlush/AutoReload features...

But it's probably best to assume (with these small files), writing the Ini-files using the TMemInifile vs TIniFile will result in almost the same ammount of IO.

(I did see the Begin/Endupdate routine - like TStrings - which will probably lower IO, when using the TMemInifile, to write multiple changes in a single flush...)

But most of the time, the ini-file is read, so implementing a last-loadtime vs modifytime of the file, will get rid of this...

Thanks!

jfudickar

2012-01-24 21:46

developer   ~0019352

The AutoReload now verify the timestamp of the file before loading the file.

Please check the current svn version (Revision 13193) and give me a feedback.

Regards
Jens

RHoek

2012-01-26 11:05

reporter   ~0019356

Oh, great. I'll have a look at it soon (sadly I've some other issues I need to address now)

jfudickar

2012-02-11 19:30

developer   ~0019386

Any news??

RHoek

2012-02-13 17:01

reporter   ~0019405

Tested it today.
As far as I can see, this does exactly what I would like (regarding the loading)....

jfudickar

2012-02-13 18:44

developer   ~0019406

What do you mean with "regarding the loading"?
Can we close the issue, did I missed something?

RHoek

2012-02-14 08:30

reporter   ~0019415

Sorry - yes, it can be closed...

Issue History

Date Modified Username Field Change
2012-01-12 16:03 RHoek New Issue
2012-01-20 20:23 jfudickar Note Added: 0019328
2012-01-20 20:23 jfudickar Status new => feedback
2012-01-23 09:31 RHoek Note Added: 0019345
2012-01-23 09:40 jfudickar Note Added: 0019346
2012-01-23 15:01 RHoek Note Added: 0019348
2012-01-24 21:46 jfudickar Note Added: 0019352
2012-01-26 11:05 RHoek Note Added: 0019356
2012-02-11 19:30 jfudickar Note Added: 0019386
2012-02-13 17:01 RHoek Note Added: 0019405
2012-02-13 18:44 jfudickar Note Added: 0019406
2012-02-14 08:30 RHoek Note Added: 0019415
2012-02-14 17:10 jfudickar Status feedback => resolved
2012-02-14 17:10 jfudickar Resolution open => fixed
2012-02-14 17:10 jfudickar Assigned To => jfudickar