On Mon, 26 Aug 2013 22:43:46 +0300, Binyamin Dissen wrote:
>I would suggest that you read up on EXECIO * DISKW and stems
>
>You will figure it out if you look at the file that got the E37
>
Kind of a snarky RTFM, but I suppose I was similarly Socratic in my followup.
So, I RTFM; Title: z/OS V1R13.0 TSO/E REXX Reference
Document Number: SA22-7790-10. Some of this is worth a RCF.
2.4.3 Compound symbols
...
Before the symbol is used (that is, at the time of reference), the language
processor substitutes the values of any simple symbols in the tail (I, J,
and
One in the examples), thus generating a new, derived name. This derived
name is then used just like a simple symbol. That is, its value is by
default
the derived name, or (if it has been used as the target of an assignment)
its value is the value of the variable named by the derived name.
The antecedent of the pronoun "it" in the parenthesized clause is totally
unclear. The whole thing would be better if the sentence beginning
"That is ..." were omitted. It adds no meaning and much confusion.
10.3 EXECIO
...
When var-name does not end with a period, ...
...
"EXECIO * DISKR MYINDD (FINIS STEM MYVAR"
...
The number of variables in the list is placed in MYVAR.0
Clearly wrong; the number of variables is placed in MYVAR0, not in MYVAR.0.
...
Operands for Writing to a Data Set:
...
lines
the number of lines to be written. This operand can be a specific
decimal number or an arbitrary number indicated by * ...
...
When EXECIO writes an arbitrary number of lines from a list of
compound variables, it stops when it reaches a null value or an
uninitialized variable (one that displays its own name).
The "(one that displays its own name)" is clearly wrong. For example:
S.1 = 'First line'
S.2 = 'S.2'
S.3 = 'After ''S.2'' (one that displays its own name).'
S.4 = ''
S.5 = 'After null line.'
S.0 = 5
'EXECIO * DISKW OUTFILE (finis stem S.'
Writes:
****** ***************************** Top of Data ********
000001 First line
000002 S.2
000003 After 'S.2' (one that displays its own name).
****** **************************** Bottom of Data ******
... not stopping at S.2 which "displays its own name".
It should probably be stressed that EXECIO, unlike most Rexx
utilities does not "[substitute] the values of any simple symbols
in the tail" as described in 2.4.3, but uses the unsubstituted
names of those simple symbols. Example:
T = 'WOMBAT'
'EXECIO 3 DISKR INFILE (finis stem S.T.'
TT = 'T'
say value( 'S.T.0' ) value( 'S.TT.0' )
Prints:
S.WOMBAT.0 3
... where value() substitutes the value of T (and TT), but EXECIO does not.
I suppose some of this should go to TSO-REXX for vetting, then to
RCF.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN