Delphi-PRAXiS

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

arukas 23. Jan 2007 18:56


Komma/Punkt
 
Hi Leute,

Wie kann ich einen Wert in eine Variable einspeichern ohne zu wissen, ob der User "," oder "." benutzt hat.

Also so ungefair.....

Code:
VAR abc:real;

Edit1.Text := '1,23';
abc := strToInt(edit1.text);

Edit1.Text := '1.23';
abc := strToInt(edit1.text);

SirThornberry 23. Jan 2007 18:57

Re: Komma/Punkt
 
also mit StrToInt gar nicht weil eine Zahl mit einem Nachkommaanteil kein Integer sondern ein Floatwert ist. Ansonsten kannst du mit StringReplace einfach Punkt und Komma durch DecimalSeperator ersetzen.

mkinzler 24. Jan 2007 08:06

Re: Komma/Punkt
 
Oder die Konstante kurzzeitig Umstellen.

Sidorion 24. Jan 2007 09:00

Re: Komma/Punkt
 
FloatToStr und StrToFloat haben ein Version mit Ländereinstellungen. Dies wurde schon mehrfach im Forum besprochen. Bemühe doch bitte die Suche und/oder die Online Hilfe:roteyes:

Muetze1 24. Jan 2007 09:02

Re: Komma/Punkt
 
Zitat:

Zitat von Sidorion
FloatToStr und StrToFloat haben ein Version mit Ländereinstellungen. Dies wurde schon mehrfach im Forum besprochen. Bemühe doch bitte die Suche und/oder die Online Hilfe:roteyes:

... erst ab Delphi 6, spätestens Delphi 7. Ich harbeite meistens noch mit Delphi 5 - daher hätte ich keine Chance. Da der Poster seine Delphi Version nicht angegeben hat und vielleicht sogar schon die anderen Lösungen gefunden hatte: woher weisst, dass ihm das wirklich hilft?

arukas 27. Jan 2007 20:14

Re: Komma/Punkt
 
hi leute,

danke für eure Hilfe...

Ich hab es jetzt folgendermaßen gelöst:

- DecimalSeperator := '.';
- alle Kommas in Punke umgeformt

Es ist jetzt also egal, ob man Komma oder Punkt benutzt.


Vielen Dank,

Arukas

mkinzler 27. Jan 2007 20:15

Re: Komma/Punkt
 
Zitat:

Zitat von arukas
hi leute,

danke für eure Hilfe...

Ich hab es jetzt folgendermaßen gelöst:

- DecimalSeperator := '.';
- alle Kommas in Punke umgeformt

Es ist jetzt also egal, ob man Komma oder Punkt benutzt.


Vielen Dank,

Arukas

Übrigens, das meinte ich in #3

OldGrumpy 27. Jan 2007 21:23

Re: Komma/Punkt
 
Und was machst Du mit gemischten Eingaben mit Tausendertrennzeichen?

Also zum Beispiel 1.200,65 oder 1,350,723.23?

mkinzler 27. Jan 2007 22:02

Re: Komma/Punkt
 
Zitat:

Und was machst Du mit gemischten Eingaben mit Tausendertrennzeichen?
Zusätzlich die Konstante ThousandSeparator setzen,

webcss 27. Jan 2007 22:41

Re: Komma/Punkt
 
kannst natürlich auch in OnKeyPress jedes Komma = in Punkt wandeln....

OldGrumpy 27. Jan 2007 23:12

Re: Komma/Punkt
 
Zitat:

Zitat von mkinzler
Zitat:

Und was machst Du mit gemischten Eingaben mit Tausendertrennzeichen?
Zusätzlich die Konstante ThousandSeparator setzen,

Tjaha, aber wenn beide Separatoren gleich sind, wie werden die dann unterschieden? :)

Ist dann 1.000.235 gleich Eintausendkommazwodreifünf oder eine Million und zweihunderfünfunddreissig? :mrgreen:

mkinzler 27. Jan 2007 23:17

Re: Komma/Punkt
 
Zitat:

Tjaha, aber wenn beide Separatoren gleich sind, wie werden die dann unterschieden? Smile
Das dürfte ja nicht passieren. Und wenn hilft dir das Ersetzen ja auch nix.

OldGrumpy 27. Jan 2007 23:50

Re: Komma/Punkt
 
Zitat:

Zitat von mkinzler
Zitat:

Tjaha, aber wenn beide Separatoren gleich sind, wie werden die dann unterschieden? Smile
Das dürfte ja nicht passieren. Und wenn hilft dir das Ersetzen ja auch nix.

Genau deswegen hatte ich ja meine ursprüngliche Frage gestellt, denn

Zitat:

Zitat von arukas
Ich hab es jetzt folgendermaßen gelöst:

- DecimalSeperator := '.';
- alle Kommas in Punke umgeformt

Alle Klarheiten beseitigt? :mrgreen:

mkinzler 27. Jan 2007 23:55

Re: Komma/Punkt
 
Durch Setzen der Separatoren wird aber nichts ersetzt, sondern den Funktion nur gesagt wie die Werte interpretiert werden sollen.

OldGrumpy 28. Jan 2007 00:33

Re: Komma/Punkt
 
*sigh* Ich gebs auf :)

marabu 28. Jan 2007 07:00

Re: Komma/Punkt
 
Guten Morgen,

abgesehen davon, dass es bei der interaktiven Eingabe normalerweise keine Kolonnenschreibweise gibt, halte ich die Ersetzung der Metazeichen generell für ungeschickt. Die Trennzeichen sind Bestandteil der regional settings und unterliegen der Kontrolle des Benutzers, nicht der Kontrolle des Entwicklers. Die Berücksichtigung von Eingaben, die nicht den Benutzereinstellungen entsprechen, spielt nur bei der Datenumformung (Import / Export) eine Rolle.

Grüße vom marabu

OldGrumpy 28. Jan 2007 09:41

Re: Komma/Punkt
 
Marabu, wenn Du wüßtest, was Leute so alles eintippen... Das fängt ja schon bei simplen Lizenzkeys an. Wir hatten damals im Support tonnenweise Leute, die nicht lesen können ;) Trotz wunderbar klar gesetzter Druckweise konnten die Leute so Sachen wie 2 und Z, 5 und S, 0 und O oder 1 und I nicht auseinanderhalten.
Wir haben das dann irgendwann pragmatisch durch ein modifiziertes Keysystem gelöst - wir benutzen halt keine 2, 5, O und I mehr und das Programm wandelt die bekannten Vertipper erstmal entsprechend um bevor der eigentliche Test auf einen gültigen Lizenzkey erfolgt. An der selben Stelle werden auch die üblichen Copy&Paste-Fehler erstmal ausgebügelt - uns sparte es VIEL Aufwand im Support und der Kunde freut sich ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.

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