|
Prüfen ob Eingabe eine Zahl oder ein String ist...
Guten Morgen Leute !
Ich möchte gerne folgende Eingabe prüfen: Code:
local str t=""Problem: local int t2 = val(t) führt ggf. zu einer fehlerhaften Benutzereingabe. Logisch. Gibt es ein Bordmittel oder eine OSA dafür ? |
|
Hallo Günter,
habe gerade mal meine OSA-Tabelle durchgesehen. Dabei bin ich auf ASC und DIVIDE gestoßen. Wird vermutlich nicht das sein, was Du brauchst, habe aber einen Gedanken, den Du vielleicht mal selbst überlegen kannst. Ist es nicht möglich eine Abfrage in etwa so zu gestalten, dass Du t:1 rechnen lässt. Ergibt t:1 = t hast Du eine Ganzzahl Gruß Rainer |
|
Das Problem beginnt aber nicht bei der Abfrage, sondern bereits beim Versuch den Wert von t zu ermitteln. Also local int t2 = val(t) ergibt "Fehlerhafte Benutzerdaten"
Ich suche daher eine Möglichkeit vor der Abfrage festzustellen, ob t eventuell eine Zahl ist, auch wenn die Variable vorher von mir selbst als STRING definiert wurde. PHP bietet dafür zb. die Funktion is_numeric |
|
Muss leider gleich weg und auf die schnelle hab ich's nicht mehr so mit der Programmierung.
Was ich dachte: Kannst Du nicht vor val(t) eine Prüfung t:1 einbauen? Was liefert die OA-Programmierung denn wenn man einen String durch 1 dividiert? Dachte dass man auf diesem Weg eine Prüfung vornehmen könnte. |
|
Hallo Günter,
hast Du dieses Problem schon gelöst? Habe mir nochmal Gedanken gemacht. Nutze ich die Programmierung von OA ergibt val(t) bei mir mit 603 13 = 0,00000 603,13 = 613,13000 60313 = 61313,00000 Folglich müsste man mit der OSA Funktion RIGHT eine Ganzzahl herausgekommen können. Gruß Rainer |
|
Die Funktion RIGHT meinst du wirklich ??? Wie soll das gehen ?!
|
|
Sorry,
hab's gerade getestet: Geht nur mit "TextString", nicht mit val() |
|
Eine Idee habe ich noch.
Wie bekomme ich einen String in Kombination mit val() z. B. mit € hin. a = val(t) & "€" geht leider nicht |
|
local str a = string(val(t)&"€"))
|
|
Hallo Günter,
ein wohl für Programmierer nicht ganz so optimale Möglichkeit, aber im Ergebnis richtig. Code:
errors offEine Dezimalzahl liefert mit RIGHT so nun die Nachkommastellen. Hast Du 00000, hast Du eine GANZZAHL. Gruß Rainer |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr. |
Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.