[Delphi] EConvert Error (String->REAL)

almdudler777

Well-known member
ID: 115892
L
21 Mai 2006
45
1
Hallo Leute,

ich habe da ein kleines Problem beim Konvertieren:

Und zwar schreibe ich ein Quartettspiel (mit sonnem Abiturzeugs für den Info Unterricht), so nun habe ich die Datenbank etc ausgelesen und er soll mir die Werte die aus eine TStringList kommen wo anders hinpacken und zwar als Real werte, damit ich sie später vergleichen kann.

Wenn nun ein wert wie 235.55 für die Länge eines Schiffes kommt und er das konvertieren soll gibts ne exception da kein gültiger Gleitkommawert.

Völlig klar, denn es müsste eigentlich nen komma sein und kein punkt.

Das Problem ist aber, dass ich aus früheren Sachen weiß das das scheinbar vom OS abhängt ob nun Punkt oder Komma. Denn bei einem Taschenrechner hatte ich das Problem schonmal. Bei mir gings problemlos, da ich den Punkt immer durch nen Komma ersetzt habe. Bei nem Kollegen gings nicht mehr, da wollte das System wohl nen Punkt als trennzeichen.

Nun die gute Frage: Wie kann man sowas umgehen?
Kann ich irgendwo in meinem Code sagen, das ich nun global nen Punkt als Trennzeichen haben will??

MFG almi
 
Is schon ne ganze Weile her dass ich mit Delphi was gemacht hab, habs auch net hier.
Du kannst mal versuchen das über einen try-exept-Block oder so ähnlich zu machen. Du versuchst es die Zahl mit Punkt umzuwandeln und wenn das einen Fehler erzeugt wird der Punkt erst in ein Komma umgewandelt.
 
Jo,

Danke dir so hatte ich das auch schon gemacht!

Ging mir nur darum, dass das Program irgendwie beim ausführen ne Fehlermeldung gibt?!

Ich dachte halt es gibt sowas wie error_reporting(0); (aus PHP) aber habe gestern abend noch gegoogelt und gesehen, das das wahrscheinlich daran liegt das ich es über die IDE starte habe aber noch nicht weiter rumprobiert.



Naja die eigentliche Frage bliebe ja noch im Raum: gibt es eine Funktion etc. mit der man Global sagen kann, das er einen Punkt als Komma ansieht?

Wieso will der das überhaupt mit nem Komma ist nen Punkt nicht sowieso standardtrennung für dezimale??

MFG almi
 
Zuletzt bearbeitet:
Moin,

danke BFabian!!

Hab mal auf den Link geklickt und einfach mal stumpf rumprobiert :)

lool also wenn man das so macht geht es bei mir hoffentlich auch bei meinem Kollegen der nen amy betriebssystem hat^^ xD

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
DecimalSeparator := '.';
StrToFloat('21.5');
end;

Wer aber noch nen besseren Tipp hat immer mal melden!!

MFG almi