Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Stringreplace Decimalseparator


colaka - Sa 22.03.14 18:55
Titel: Stringreplace Decimalseparator
Hallo,

ich habe ein Editfeld, in das der Benutzer einen Währungsbetrag eingeben soll. Da ich die Systemeinstellungen nicht kenne, soll der eingegebene Betrag automatisch in die Form "Euro Dezimalseparator Cent" umgewandelt werden, unabhängig davon, ob der Benutzer den Betrag mit Punkt oder mit Komma eingegeben hat. Im Prinzip soll das Ganze ungefähr so funktionieren: Stringreplace(Edit1.text, ',' oder '.', Decimalseparator).

Geht das irgendwie?


Tranx - Sa 22.03.14 19:00

Wie wär's mit der Routine?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Interface

Type
  CharSet = Set of Char;


implementation

function StringReplace(psText: string; pcWas : CharSet; pcDurch: Char = DecimalSeparator): string;
var
  i: Integer;
begin
  for i := 1 to Length(psText) do
  begin
    if psText[i] in pcWas then
         psText[i] := pcDurch;
  end;
  Result := psText;
end;



Aufruf z.B. wie folgt:


Delphi-Quelltext
1:
   WertStr := StringReplace(Edit1.Text,['.',','][, DecimalSeparator]);    // [, DecimalSeparator] nicht notwendig, da Vorgabewert.