Barry A Schwarz wrote (edited to include information Barry sent me
offline):

> SMP/E produces a block of lines for each element.  Something like
>
>EDC40321  LASTUPD         = HLE7703  TYPE=ADD
>          LIBRARIES       = DISTLIB=AEDCMOD1
>          FMID            = HLE7703
>          RMID            = UQ46415
>          CSECT           = EDCOILNA
>          LMOD            = CEEEV003
>
>I would like to convert it to a one line entry along the lines of:
>
>MOD=EDC40321 LASTUPD=HLE7703 TYPE=ADD DISTLIB=AEDCMOD1 SYSLIB=bbbbbbbb
>FMID=HLE7703 RMID=UQ46415 >CSECT=EDCOILNA >LMOD=CEEEV003
>all on one line
>
>I have already done something very similar for DDDEFs in REXX but I'm
>looking for something with better performance.
>
>Does anyone have a suggestion, such as a set of DFSORT/ICETOOL
>statements?

Barry contacted me offline with more information, and here's the
DFSORT/ICETOOL job I came up
with to give him what he wanted.   Note that it requires z/OS DFSORT V1R5
PTF UQ95214 or
DFSORT R14 PTF UQ95213 (Dec, 2004) in order to use DFSORT's new IFTHEN and
OVERLAY
functions to do "group" operations.  For complete details on all of the new
DFSORT and ICETOOL
functions available with the  Dec, 2004 PTF, see:

www.ibm.com/servers/storage/support/software/sort/mvs/pdug/

For some more Smart DFSORT Tricks that use IFTHEN to do group operations,
see:

http://www.ibm.com/servers/storage/support/software/sort/mvs/tricks/srtmtrck.html#d02

and:

http://www.ibm.com/servers/storage/support/software/sort/mvs/tricks/srtmtrck.html#d01

Here's the DFSORT/ICETOOL job for reformatting the SMP/E listing:

//S1    EXEC  PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=...  input file
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS)
//OUT DD DSN=...  output file
//TOOLIN DD *
 COPY FROM(IN) TO(T1) USING(CTL1)
 SPLICE FROM(T1) TO(OUT) ON(130,8,ZD) -
  WITHEACH WITH(41,16) WITH(58,28) WITH(87,12) WITH(100,14) -
  WITH(115,13) USING(CTL2)
/*
//CTL1CNTL DD *
  OMIT FORMAT=CH,
    COND=(1,5,EQ,C'1PAGE',OR,10,6,EQ,C'MODULE',OR,12,1,EQ,C' ')
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(130:SEQNUM,8,ZD)),
        IFTHEN=(WHEN=(12,7,CH,EQ,C'LASTUPD'),
           BUILD=(C' MOD=',2,9,C'LASTUPD=',30,17,
                130:SEQNUM,8,ZD)),
        IFTHEN=(WHEN=(12,7,CH,NE,C'LASTUPD'),
                OVERLAY=(138:SEQNUM,8,ZD,
                         130:130,8,ZD,SUB,138,8,ZD,M11,LENGTH=8),
                HIT=NEXT),
        IFTHEN=(WHEN=(12,9,CH,EQ,C'LIBRARIES'),
                BUILD=(41:30,16,130:130,8)),
        IFTHEN=(WHEN=(12,4,CH,EQ,C'FMID'),
                BUILD=(58:C'SYSLIB=',74:C'FMID=',30,7,
                  130:130,8)),
        IFTHEN=(WHEN=(12,4,CH,EQ,C'RMID'),
                BUILD=(87:C'RMID=',30,7,
                  130:130,8)),
        IFTHEN=(WHEN=(12,5,CH,EQ,C'CSECT'),
                BUILD=(100:C'CSECT=',30,8,
                  130:130,8)),
                BUILD=(115:C'LMOD=',30,8,
                  130:130,8))
/*
//CTL2CNTL DD *
  OUTFIL FNAMES=OUT,OUTREC=(1,129)
/*

Frank Yaeger - DFSORT Team (IBM)
 Specialties: ICETOOL, IFTHEN, OVERLAY, Symbols, Migration
 => DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to