Antwort schreiben...
 
Themen-Optionen Thema durchsuchen
Alt 28.01.2011, 10:17   #1
waldbauer.com
Entwickler
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=""
local str t9=""
t="";
t9=""
get t uppercase blank numbers chars '+.&-ß!/';t9=t&" "
Nun möchte ich prüfen, ob t eine ganze Zahl ist oder nicht, dabei sollte berücksichtigt werden, daß t auch manchmal 603 13 sein kann (also mit Space).

Problem:

local int t2 = val(t) führt ggf. zu einer fehlerhaften Benutzereingabe. Logisch. Gibt es ein Bordmittel oder eine OSA dafür ?
waldbauer.com ist offline   Mit Zitat antworten
Alt 01.02.2011, 16:27   #2
RKabis
Registrierter Benutzer
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
RKabis ist offline   Mit Zitat antworten
Alt 01.02.2011, 16:32   #3
waldbauer.com
Entwickler
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
waldbauer.com ist offline   Mit Zitat antworten
Alt 01.02.2011, 17:16   #4
RKabis
Registrierter Benutzer
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.
RKabis ist offline   Mit Zitat antworten
Alt 04.02.2011, 09:44   #5
RKabis
Registrierter Benutzer
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
RKabis ist offline   Mit Zitat antworten
Alt 04.02.2011, 09:51   #6
waldbauer.com
Entwickler
Die Funktion RIGHT meinst du wirklich ??? Wie soll das gehen ?!
waldbauer.com ist offline   Mit Zitat antworten
Alt 04.02.2011, 10:31   #7
RKabis
Registrierter Benutzer
Sorry,
hab's gerade getestet: Geht nur mit "TextString", nicht mit val()
RKabis ist offline   Mit Zitat antworten
Alt 04.02.2011, 10:40   #8
RKabis
Registrierter Benutzer
Eine Idee habe ich noch.

Wie bekomme ich einen String in Kombination mit val() z. B. mit € hin.

a = val(t) & "€"

geht leider nicht
RKabis ist offline   Mit Zitat antworten
Alt 04.02.2011, 11:14   #9
waldbauer.com
Entwickler
local str a = string(val(t)&"€"))
waldbauer.com ist offline   Mit Zitat antworten
Alt 04.02.2011, 12:17   #10
RKabis
Registrierter Benutzer
Hallo Günter,

ein wohl für Programmierer nicht ganz so optimale Möglichkeit, aber im Ergebnis richtig.

Code:
errors off
local window Hilfe = size 40 by 19 at 21,3 framed
pause = TRUE
screen Hilfe
 
local str t=""
!t="603 13"
!t="603,13"
t="60313"
local int t2 = val(t)
put in Hilfe at 3,3 t2
local str a = string(val(t))
put in Hilfe at 3,5 a
IF a = "0,00000" put in Hilfe at 3,6 "TEXT"
ELSE
attach 'string'
b = call('RIGHT' ,a,5)
put in Hilfe at 3,7 b
detach 'string'
 
IF b = "00000"
put in Hilfe at 3,8 "GANZZAHL"
END IF
 
END IF
 
GET pause
pause END
END SCREEN
val(t) liefert bei Textstring ein 0,00000, so dass ich mit IF-Anweisung den Textstring herausziehe.

Eine Dezimalzahl liefert mit RIGHT so nun die Nachkommastellen.
Hast Du 00000, hast Du eine GANZZAHL.

Gruß Rainer
RKabis ist offline   Mit Zitat antworten


Antwort schreiben...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nützliche Tips (Ergänzungen zum Handbuch von Heinz Richartz) waldbauer.com SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum 204 08.11.2012 14:11