Thema: Delphi StringReplace

Einzelnen Beitrag anzeigen

Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#1

StringReplace

  Alt 27. Okt 2007, 10:50
Hi,

mein Delphi benutzt in Decimalzahlen Komma. Ich habe eine Funktion, in der die Eingaben auf ihrer Gültigkeit überprüft werden, wobei aber auch Punkte in Decimalzahlen zugelassen werden sollen:

Delphi-Quellcode:
function ValidateNumber(s: String): Boolean;
var i: Integer;
    t: Real;
begin
  Result := True;
  for i := 1 to Length(s) do
    if s[i] in ['-', '0'..'9', '.', ','] = False then
      Result := False;
  StringReplace(s, '.', ',', [rfReplaceAll]);
  try
    t := StrToFloat(s);
  except
    Result := False;
  end;
end;
Wenn aber s z.B. '0.5' ist, dann liefert StrToFloat(s) einen Fehler, obwohl StringReplace eigentlich den Punkt in einen Komma hätte verwandeln sollen.

Mit einem Schritt-für-Schritt durchlauf der Funktion habe ich bemerkt, dass nach StringReplace s immer noch Punkte enthält!

Was ist schief gegangen?
  Mit Zitat antworten Zitat