MainframeSupports
tip uge 9/2015:

Validering af input kan i mange programmeringssprog være en kedelig opgave med masser af kode. I REXX kan man slippe forholdsvis let fra opgaven ved at bruge funktionen DATATYPE. Min yndlingsudgave er DATATYPE(variabel, 'W'), som validerer om indholdet af variabel er en integer. Det lidt specielle ved DATATYPE funktionen er, at den returnerer 0, hvis variabel ikke er af den angivne datatype, og 1, hvis den er. Det betyder, at man kan bruge den i en IF således:

mynumber = '1234'
IF DATATYPE(mynumber, 'W')
THEN
  SAY 'mynumber is an integer'
ELSE
  SAY 'no integer in mynumber'

Men læg mærke til, at DATATYPE kan anvendes med kun een parameter, og så returnerer funktionen enten værdien NUM eller CHAR, hvilket er lidt mærkeligt. Jeg kan også godt lide varianten DATATYPE(variabel, 'S'), som validerer om variabel indeholder et syntaktisk korrekt REXX symbol. Det synes jeg er en fantastisk feature, især hvis man godt kan lide at benytte INTERPRET kommandoen eller VALUE funktionen.

Forrige danske tip        Last tip in english        Tip oversigten