Menu

#25 Speed up some writing into Ini files

open
nobody
None
3
2013-03-23
2006-12-10
No

A very convenient feature of SynEdit : write configuration into 'Ini-files', is a bit slow while writing into an USB flash device. Changing from TIniFile to TMemIniFile seems to speed up the process.

Best regards,
Pierre.

Index: SynEditHighlighter.pas

--- old (UniSynEdit '25. June 2006')
+++ new
@@ -89,7 +89,7 @@
function LoadFromRegistry(Reg: TBetterRegistry): Boolean;
function SaveToRegistry(Reg: TBetterRegistry): Boolean;
function LoadFromFile(Ini: TIniFile): Boolean;
- function SaveToFile(Ini: TIniFile): Boolean;
+ function SaveToFile(Ini: TMemIniFile): Boolean;
{$ENDIF}
public
property FriendlyName: WideString read fFriendlyName;
@@ -694,7 +694,7 @@
end;
end;

-function TSynHighlighterAttributes.SaveToFile(Ini : TIniFile): boolean;
+function TSynHighlighterAttributes.SaveToFile(Ini : TMemIniFile): Boolean;
begin
Ini.WriteInteger(Name, 'Background', Background);
Ini.WriteInteger(Name, 'Foreground', Foreground);
@@ -881,10 +881,10 @@

function TSynCustomHighlighter.SaveToFile(AFileName : String): boolean;
var
- AIni: TIniFile;
+ AIni: TMemIniFile;
i: integer;
begin
- AIni := TIniFile.Create(AFileName);
+ AIni := TMemIniFile.Create(AFileName);
try
with AIni do
begin
@@ -893,6 +893,7 @@
Result := Attribute[i].SaveToFile(AIni) and Result;
end;
finally
+ AIni.UpdateFile;
AIni.Free;
end;
end;

Discussion

  • Pierre Fauconnier

    • priority: 5 --> 3
    • assigned_to: nobody --> etrusco
     
  • Flávio Etrusco

    Flávio Etrusco - 2013-03-23

    The parameter could just be changed to TCustomIniFile, so it keeps code compatibility but at least allows the user to pass in an TMemIniFile instance.

     
  • Flávio Etrusco

    Flávio Etrusco - 2013-03-23
    • assigned_to: etrusco --> nobody
     

Log in to post a comment.