EditorMacroScript: deal with broken xml file

git-svn-id: trunk@47133 -
This commit is contained in:
martin 2014-12-08 01:09:26 +00:00
parent b58ff06478
commit 91bf3f088a

View File

@ -82,7 +82,7 @@ type
FSelfTestError: String; FSelfTestError: String;
FSelfTestFailed: Integer; // stores EMSVersion that failed FSelfTestFailed: Integer; // stores EMSVersion that failed
protected protected
function GetXmlConf: TRttiXMLConfig; function GetXmlConf(CleanOnError: Boolean = False): TRttiXMLConfig;
public public
constructor Create; constructor Create;
procedure Init; procedure Init;
@ -147,15 +147,24 @@ end;
{ TEMSConfig } { TEMSConfig }
function TEMSConfig.GetXmlConf: TRttiXMLConfig; function TEMSConfig.GetXmlConf(CleanOnError: Boolean): TRttiXMLConfig;
var var
fn: String; fn: String;
begin begin
fn := GetConfFileName; fn := GetConfFileName;
if (not FileExistsUTF8(fn)) then if (not FileExistsUTF8(fn)) then begin
Result := TRttiXMLConfig.CreateClean(fn) Result := TRttiXMLConfig.CreateClean(fn)
else end
Result := TRttiXMLConfig.Create(fn); else begin
if CleanOnError then
try
Result := TRttiXMLConfig.Create(fn);
except
Result := TRttiXMLConfig.CreateClean(fn)
end
else
Result := TRttiXMLConfig.Create(fn);
end;
end; end;
constructor TEMSConfig.Create; constructor TEMSConfig.Create;
@ -189,7 +198,7 @@ var
def: TEMSConfig; def: TEMSConfig;
cfg: TRttiXMLConfig; cfg: TRttiXMLConfig;
begin begin
cfg := GetXmlConf; cfg := GetXmlConf(True);
def := TEMSConfig.Create; def := TEMSConfig.Create;
try try
cfg.WriteObject('EMS/Settings/', Self, def); cfg.WriteObject('EMS/Settings/', Self, def);