Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Punkt durch Komma ersetzen (https://www.delphipraxis.net/3010-punkt-durch-komma-ersetzen.html)

Mada 18. Feb 2003 10:20


Punkt durch Komma ersetzen
 
Hi zusammen!
Habe folgendes Problem:
ich bekomme aus einem Variant einen string zurückgeliefert, der so aussieht.

2.45

mit dieser zahl muss ich nun mit den Nachkommastellen weiterrechnen. Aber so geht das ja noch nicht. Einen Integer darf ich wegen den Kommastellen nicht verwenden. Aber, um nun einen Float daraus machen zu können muss ich doch zuerst den Punkt durch ein Komma ersetzen, oder?
Also eine

2,45

machen.

Gibt es eine Funktion in Delphi, die das macht? In Perl kann ich irgendwie ein Schleifenkonstrukt bauen , aber in Delphi, da bin ich nun überfragt.

Weiß jemand wie das funktioniert?

LG,
Mada
:witch:

Luckie 18. Feb 2003 10:23

DecimalSeparator heißt das Stichwort für die Hilfe.

janjan 18. Feb 2003 10:33

oder so:

Delphi-Quellcode:
Function PunktToKomma(s: string):string;
begin
  result:=copy(s,0,pos('.',s)-1)+','+copy( s, pos('.',s)+1, length(s)-pos('.',s));
end;
Wobei DecimalSeperator die einfachere Variante ist ;)

Luckie 18. Feb 2003 10:44

Und die bessere. Was wenn ein anderes Länderschema eingestellt ist? :roll:

Außerdem, wenn man es schon so macht, wäre wohl StringReplace angebrachter.

Mada 18. Feb 2003 11:13

OK, aber nochmal ne Frage zu dem DezimalSeperator.
Ich soll den Format folgendermaßen angeben.

"%" [index ":"] ["-"] [width] ["." prec] type

mein type ist ff

Also schreib ich
Format(vorhandeneZahl %f f: string; Ergebniszahl Args: array of const): string;

vorhandenen Zahl als einzulesenden string und die Ergebniszahl als ergebis nach der formatierung, richtig??
?? aber wie muss ich dann das % angeben? Dort erscheint bei mir ein Fehler. Sorry für die doofe frage, aber ich immer probleme, die allgemein notierten beispiele in direkten quellcode umzuwandeln, bwz diesen an meinen Quellcoe anzupassen....*schämmich*

(Mir fehlt wohl die Programmierübugn :oops: )

janjan 18. Feb 2003 12:00

das klappt nicht:

Delphi-Quellcode:
var s: string
    f: real;
begin
  s:='2,54';
  f:=floattostr(s);
end;
Einsatz von DecimalSeperator:

Delphi-Quellcode:
var s: string
    f: real;
begin
  s:='2,54';
  DecimalSeperator:=',';
  f:=floattostr(s);
end;

Mada 18. Feb 2003 13:30

Hi,

danke an euch. Habs kapiert. und es geht.

Hab nur irgendwie durcheinander gebracht, wann eine Typendefinition vorliegt und wann man den Wert ersetzen muss.

LG,
Mada


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz