Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Komma/Punkt Dezimalseperator

  Alt 20. Okt 2006, 16:01
Eleganter ist es, sich die aktuellen Landeseinstellungen in ein Formattemplate zu holen und die dann für die neuere Variante von StrToFloat zu verwenden:

Delphi-Quellcode:
uses SysUtils;
...
var
  fs :TFormatSettings;
  MeinString :String;
  MeineZahl :Double;
...
begin
...
  GetLocaleFormatSettings(GetUserDefaultLCID, fs);
  MeineZahl:=StrToFloat(MeinString, fs);
...
EDIT:
Nachtrag: Natürlich ist es so auch möglich, Zahlen die immer im gleichen Format vorliegen, unabhängig von den aktuellen Einstellungen des Rechners umzuwandeln. Dafür gibt man einfach bei GetLocaleFormatSettings seine eigene LCID an. Die kann man ja einfach per GetUserDefaultLCID ermitteln

EDIT:
Nachtrag 2: Ich hoffe, die Erklärung ist jetzt nicht allzu wirr. Für die Anwendung "wandle eine beliebige eingegebene Kommazahl so um wie der User es erwartet" gilt meine obige Version, für die Aufgabe "wandle Zahlen aus einem Datenfile unabhängig von der Ländereinstellung des Rechners" gilt die Empfehlung aus Nachtrag 1
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat