Autor Beitrag
MarcRB1975
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131

XP, Windows7
Delphi 2005 PE, Turbo, RAD Delphi 2009, XE, XE2
BeitragVerfasst: Fr 19.01.07 18:18 
Hallo,
ich würde gerne wissen wollen, ob man die Eingabe (Edit) überprüfen lassen kann, ob es sich dabei tatsächlich um Zahlen handelt.

Jetzt habe ich gemerkt, dass wenn man z.B. die Zahl 99.000.000,00 eingibt, er den Wert nicht prüfen kann, weil er sagt, dass es sich um keinen Integerwert handelt.
Nun... natürlich habe ich vorher alle Punkte und das Dezimalkomma entfernt, um dann nur die Zahl prüfen zu können.
Die Zahl ist ihm einfach zu groß.

Dann habe ich mir gedacht, ich lasse einfach jedes Zeichen nach dem anderen überprüfen, um festzustellen, ob die Zeichen auch tatsächlich alle Zahlen sind.
Das würde schon gehen, aber ich muss ja später mit der Zahl weiterrechnen und dazu brauche ich irgendwie eine Umwandlung von String (Edit) zu einem "Zahlen-Wert".

Kann man größere Zahlen nicht überprüfen lassen bzw. eine String-Wert (große Zahl) in einen Integerwert umwandeln lassen??

Vielen Dank im Voraus!!

_________________
Sokrates: "Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 19.01.07 18:31 
Hallo!

user profile iconMarcRB1975 hat folgendes geschrieben:


Nun... natürlich habe ich vorher alle Punkte und das Dezimalkomma entfernt, um dann nur die Zahl prüfen zu können.
Die Zahl ist ihm einfach zu groß.


Ähm, alle zusätzlichen Zeichen entfernt? D.h. die Zahl ist nachher: 9900000000 ??? Ist natürlich zu groß für einen Integer. Könntest dir einen neuen Typen basteln, der 128-Bit-Werte darstellen kann. Ist aber nicht ganz einfach. Die Funktionen wie StrToInt etc. müssen dann von dir implementiert werden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 19.01.07 18:34 
Also ich denk mal mit Int64 sollte man erstmal auskommen... Das geht immerhin bis 2^63...
Und IntToStr und so geht damit.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 19.01.07 18:41 
Ab Delphi 7 (oder6???) Gibt's ne Funktion TryStrToInt64 ... Wenn Du aber wie angedeutet mit Nachkommastellen rechnen willst, solltest Du Dir überlegen, mit Gleitkomma-Typen (Single, Double, Extended) zu rechnen ... Ansonsten müsstest Du dich erst nach einer Groß-Zahl-Bibliothek umschauen ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Sa 20.01.07 13:49 
... Oder Fixkommazahltyp "Currency", wenn es sich um Währungsangaben handelt (sieht irgendwie danach aus).
Geht von -922337203685477.5808 bis 922337203685477.5807 in 0.0001-Schritten.
MarcRB1975 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131

XP, Windows7
Delphi 2005 PE, Turbo, RAD Delphi 2009, XE, XE2
BeitragVerfasst: Sa 20.01.07 13:58 
ohhh.... vielen, vielen Dank für die Antworten.
Ich konnte jetzt mein Problem mit Int64 zum Glück lösen bzw. in den Griff bekommen. :-)

Vielen Dank nochmal!!!!

_________________
Sokrates: "Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."