Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: inifile ReadFloat deutsch/english formatsettings

  Alt 14. Jul 2021, 16:53
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;

Geändert von Rolf Frei (14. Jul 2021 um 16:57 Uhr)
  Mit Zitat antworten Zitat