Alpha-Feld auf nummerisch prüfen

S
#1
Hallo Leute!

Habe da ein kleines Programm, wobei Ihr mir bitte weiterhelfen könnt:

Ich bekomme aus einem DSPF ein 3 Alpha-Feld, das ich auf nummerisch prüfen soll.

Mit dem Befehl: TESTN lässt er auch Werte zu die hinten einen Buchstaben haben:mauer: (Bsp: 00A, 00Z).

Was mach ich falsch.

Habe momentan das Problem mit einer Feldgruppe gelöst, ist aber keine schöne Lösung.

Dank im Voraus.
 

Mirco

Well-Known Member
#2
Testn

Habe es testen können. Mmmmhh Du hast Recht keiner der Bezugszahlen meldet sich bei der Prüfung.
Ich würde vielleicht so vorgehen:

D numeric C '0123456789'
D value C '00Z'

C numeric check value result

So kannst Du herausfinden, an welcher Stelle der erste nicht numerische Wert liegt... in diesem Fall bekommt die Var. result den Wert 3


Vielleicht hilft es und sorry dass es länger gedauert hat. In diesem Forumteil wird nicht ganz so oft was geposted... ;-)
 
#3
alfafeld numerisch prüfen

Ich kenne das Problem mit TESTN. Zum prüfen verwende ich daher den Befehl CHECK:

d #digit c const('1234567890')

c #digit check #testfield 45
c if *in45 = *on
c* ===> XXNUM enthält mind. ein nicht-numerisches Zeichen
c endif

Günstig ist auch, dass die zu testende Zeichenfolge selbst bestimmt werden kann. So können z.B. Dezimaltrennzeichen mit einbezogen werden:

d #digit c const('1234567890 ,')
c eval #testfield = '56880,99 '
c #digit check #testfield 45
In diesem Fall ist *in45 off da nur gefundene Zeichen; die blanks können mit %dec bequem getrimmt werden.
 
Oben