INCLUDE "D2:REAL.ACT" ;from the Action! Tool Kit BYTE FUNC AreEqual(CHAR ARRAY a,b) BYTE i IF a(0)#b(0) THEN RETURN (0) FI FOR i=1 to a(0) DO IF a(i)#b(i) THEN RETURN (0) FI OD RETURN (1) BYTE FUNC IsNumeric(CHAR ARRAY s) CHAR ARRAY tmp(20) INT i CARD c REAL r i=ValI(s) StrI(i,tmp) IF AreEqual(s,tmp) THEN RETURN (1) FI c=ValC(s) StrC(c,tmp) IF AreEqual(s,tmp) THEN RETURN (1) FI ValR(s,r) StrR(r,tmp) IF AreEqual(s,tmp) THEN RETURN (1) FI RETURN (0) PROC Test(CHAR ARRAY s) BYTE res res=IsNumeric(s) Print(s) Print(" is ") IF res=0 THEN Print("not ") FI PrintE("a number.") RETURN PROC Main() Put(125) PutE() ;clear the screen Test("56233") Test("-315") Test("1.36") Test("-5.126") Test("3.7E-05") Test("1.23BC") Test("5.6.3") RETURN