Is Numeric
From MidrangeWiki
Summary
The following are the RPG/LE fully free-form definitions and instructions needed for using the Is Numeric service procedure. This service procedure simply allows the caller to validate that a character string is all numeric digits, decimal, and/or sign characters—or not.
Sometimes, having a service procedure is simply a means of making code more self-documenting (i.e., easier for others to understand). |
Service Prototype
Place the following in a separate copybook for inclusion in both the caller and the service program source members.
**free //============================================================================== // Validates variable-length character string for numerics only. // Returns a Boolean true/false value as a result. //============================================================================== dcl-pr GenUtl_isNumeric ind; pString varchar(50) const; end-pr;
Service Procedure
Place the following in a service program source member.
**free ctl-opt NoMain AlwNull(*UsrCtl) Debug Option(*SrcStmt:*NoDebugIo) DatFmt(*ISO) TimFmt(*ISO) DftActGrp(*No) ActGrp(*Caller); //============================================================================== // Validates variable-length character string for numerics only. // Returns a Boolean true/false value as a result. //============================================================================== dcl-proc GenUtl_isNumeric export; dcl-pi *n ind; pString varchar(50) const; end-pi; dcl-c GenUtl_Numeric '0123456789.+-'; if %len(pString) = *zero; // if no supplied value return *off; // indicate not numeric endif; return (%check(GenUtl_Numeric: pString) = *zero); // return result of check end-proc;