Eigentlich reicht es doch einfach das DecimalChar zu setzen:
Delphi-Quellcode:
var OrgDecSep: Char;
fIni := TIniFile.Create(aFileName);
try
try
X := fIni.ReadFloat(SectionStr, 'x', -99999); // mag nur Komma-Zahlen mit Deutschen Format 1,2 :-(
except
OrgDecSep := FormatSettings.DecimalSeparator;
try
FormatSettings.DecimalSeparator := '.';
X := fIni.ReadFloat(SectionStr, 'x', -99999); // mag nur Komma-Zahlen mit Deutschen Format 1,2 :-(
finally
FormatSettings.DecimalSeparator := OrgDecSep;
end;
end;
finally
fIni.free;
end;
Oder wenn du genau weisst, dass das INI nach US/
ANSI Regel gespeichert wurde, kannst du das auch einmalig vor der Verarbeitung der INI machen:
Delphi-Quellcode:
var OrgDecSep: Char;
OrgDecSep := FormatSettings.DecimalSeparator;
fIni := TIniFile.Create(aFileName);
try
FormatSettings.DecimalSeparator := '.';
X := fIni.ReadFloat(SectionStr, 'x', -99999); // mag nur Komma-Zahlen mit Deutschen Format 1,2 :-(
... weitere ReadFLoat, etc.
finally
FormatSettings.DecimalSeparator := OrgDecSep;
fIni.free;
end;