Hallo
Gestern bin ich über folgendes gestolpert
Wert in Inifile schreiben:
Code:
...
ini: TMemIniFile;
...
x:= 1.2;
ini.WriteFloat('Hinz','Kunz', x);
ini.UpdateFile;
...
In der selben App aus Inifile lesen
Code:
...
ini: TMemIniFile;
...
x:= ini.Readfloat('Hinz','Kunz', 1.5);
...
Folge: Fehlermeldung '1,2 ist keine gültige Zahl'
Im Inifile steht 1,2
Doku zu
ReadFloat sagt:
Das Dezimalzeichen wird von der globalen System.SysUtils.FormatSettings-Variable festgelegt.
Das
Schreiben geändert
Code:
...
ini: TMemIniFile;
dsl: Char;
...
dsl:= FormatSettings.Decimalseparator;
FormatSettings.Decimalseparator:= '.';
x:= 1.2;
ini.WriteFloat('Hinz','Kunz', x);
ini.UpdateFile;
...
FormatSettings.Decimalseparator:= dsl;
Und schon geht's. Jetzt steht 1.2 im IniFile, Zahlen in der App werden mit Komma angezeigt und das Einlesen klappt auch ohne Anpassung des Decimalseparators (was ich aber zur Sicherheit schon mache).
Nur so als Hinweis, falls jemand sich wundern sollte....
Tomy