Einzelnen Beitrag anzeigen

bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.123 Beiträge
 
Delphi 11 Alexandria
 
#1

string to Float, für lesen aus einer Datei

  Alt 17. Mär 2018, 14:00
ich muss Zahlen aus einer Datei einlesen, die entweder mit deutschem (1,234) oder amerikanischem Decimalsparator (1.234) erstellt wurden.
Die Anwendung soll auf Windows Systemen mit Sprache Deutsch oder Englisch dann laufen und die eingelesenen Strings immer richtig interpretieren

Gibt es hier eine bessere Lösung als meine ?

Delphi-Quellcode:
  function ChangeLocalFloatStr (FloatStr : String ) : String;
var usedDecimalSeparator : Char ;
    NOTusedDecimalSeparator : Char ;
begin
   // egal was der user eingestellt hat ......
   usedDecimalSeparator := TFormatsettings.Invariant.DecimalSeparator;

   if usedDecimalSeparator=',then NOTusedDecimalSeparator:='.'
          else NOTusedDecimalSeparator :=',';


   if pos (usedDecimalSeparator , FloatStr) > 0 then
       begin
          result := FloatStr;
       end
       else
       begin
          result := stringreplace(FloatStr, NOTusedDecimalSeparator , usedDecimalSeparator,
                          [rfReplaceAll, rfIgnoreCase]);
       end;

end;

Aufruf :


Delphi-Quellcode:
a : real;
astr : String ;


 a := FloatToStr( ChangeLocalFloatStr (astr)) ;
  Mit Zitat antworten Zitat