EasyManua.ls Logo

IBM TSO/E REXX - Page 33

IBM TSO/E REXX
242 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
be checked as being valid DBCS strings. DBCS characters must be enclosed within
shift-out (X'0E') and shift-in (X'0F') delimiters. In the following example, the shift-out
(SO) and shift-in (SI) delimiters are represented by the less than symbol ( < ) and
the greater than symbol ( > ) respectively.
1
For example, <.S.Y.M.D> and
<.D.B.C.S.R.T.N> represent DBCS symbols in the following examples.
Example 1
The following is an example of an exec using a DBCS variable name and a DBCS
subroutine label.
/* REXX */
OPTIONS 'ETMODE' /* ETMODE to enable DBCS variable names */
j=1
<.S.Y.M.D> = 10 /* Variable with DBCS characters between
shift-out (<) and shift-in (>) */
CALL <.D.B.C.S.R.T.N> /* Invoke subroutine with DBCS name */
.
.
.
<.D.B.C.S.R.T.N>: /* Subroutine with DBCS name */
DOi=1TO10
IF x.i = <.S.Y.D.M> THEN /* Does x.i match the DBCS variable's
value? */
SAY 'Value of the DBCS variable is : ' <.S.Y.D.M>
END
EXIT 0
Example 2
The following example shows some other uses of DBCS variable names with the
EXECIO stem option, as DBCS parameters passed to a program invoked through
LINKMVS, and with built-in function, LENGTH.
/* REXX */
OPTIONS 'ETMODE' /* ETMODE to enable DBCS variable names */
"ALLOC FI(INDD) DA('DEPTA29.DATA') SHR REU"
/*******************************************************************/
/* Use EXECIO to read lines into DBCS stem variables */
/*******************************************************************/
"EXECIO * DISKR indd (FINIS STEM <.d.b.c.s__.s.t.e.m>."
IF rc = 0 THEN /* if good return code from execio */
/*****************************************************************/
/* Say each DBCS stem variable set by EXECIO */
/*****************************************************************/
DOi=1TO<.d.b.c.s__.s.t.e.m>.0
SAY "Line " i "==> " <.d.b.c.s__.s.t.e.m>.i
END
line1_<.v.a.l.u.e> = <.d.b.c.s__.s.t.e.m>.1 /* line 1 value */
line_len = length(line1_<.v.a.l.u.e>) /* Length of line */
/*******************************************************************/
/* Invoke LINKMVS command "proca29" to process a line. */
/* Two variable names are used to pass 2 parameters, one of */
1. The SO and SI characters are non-printable.
Execs Using Double-Byte Character Set Names
Chapter 2. Writing and Running a REXX Exec 15

Table of Contents

Related product manuals