On 3/19/2016 11:05 AM, Frank Clarke wrote:
On 30 Dec 2015 14:26:08 -0800,
0000004b34e7c98a-dmarc-requ...@listserv.ua.edu (Ze'ev Atlas) wrote:

Hi AllI have a Rexx program and here is the relevant snippet:
THEMEMBER = THEPDS || "(" || MEMBER || ")"       /*say themember */                               "alloc shr 
file(input) dataset(" THEMEMBER ")"   "execio * diskr input (stem input. finis)"       IF RC \= 0 THEN             
                        call DIE 'READ MEMBER failed' RC              say member input.0 "LINES READ"
            "free file(input)"                               "EXECIO" input.0 "DISKW 
XXOUT (STEM INPUT."      IF RC \= 0 THEN                                     call DIE 'WRITE MEMBER 
failed' RC
Originally, I had "EXECIO * DISKW XXOUT (STEM INPUT."
but that would work only for members that had statistics (i.e. have been 
updated).  When I changed the '*' to input.0 it works fine.  Is that a normal 
behavior?  (I ran on z/OS 2.2! Ze'ev Atlas


Late to the party... sorry.

Never ever ever never never "EXECIO * DISKW"

There is ALWAYS information adequate to allow you to say the exact
nuber of records you want written.  Always.   Whether it's "queued()"
or "stem.0" or "42", you already have enough information to make the
DISKW happen the way you want it to happen.   Never rely on "*".

Never.


Good advice from Mr. Clarke. EXECIO * DISKW will stop the output if it encounters a blank line. Keep a counter of what you want to write and always use an explicit number of records for DISKW.

Regards,
Tom Conley

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to