Alain Benveniste
New User
Joined: 14 Feb 2005 Posts: 88
|
|
|
|
Here is what you are looking for
Code: |
//STEP0001 EXEC PGM=ICETOOL
//DFSMSG DD SYSOUT=*
//TOOLMSG DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUTX) USING(ICE0) WITHALL KEEPBASE -
ON(81,5,ZD) WITH(1,85)
/*
//IN DD *
01AAAA
02BBBB
03D01
01CCCC
02DDDD
03D01
01EEEE
02FFFF
03D02
01GGGG
02HHHH
03D01
/*
//OUTX DD SYSOUT=*
//ICE0CNTL DD *
INREC IFTHEN=(WHEN=INIT,
OVERLAY=(81:SEQNUM,5,ZD,START=2)),
IFTHEN=(WHEN=(1,3,CH,NE,C'03D'),
OVERLAY=(86:SEQNUM,5,ZD,
81:81,5,ZD,SUB,86,5,ZD,M11,LENGTH=5,
86:C'1')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'03D'),
OVERLAY=(81:SEQNUM,5,ZD),
HIT=NEXT),
IFTHEN=(WHEN=(4,2,CH,EQ,C'01'),
OVERLAY=(86:C'2')),
IFTHEN=(WHEN=(4,2,CH,EQ,C'02'),
OVERLAY=(86:C'0')),
IFOUTLEN=86
SORT FIELDS=(81,6,ZD,A)
OUTFIL FNAMES=OUTX,
OMIT=(86,1,CH,EQ,C'0'),
BUILD=(1,80)
|
OUTX shows:
Code: |
01AAAA
02BBBB
03D01
01CCCC
02DDDD
03D01
01GGGG
02HHHH
03D01
|
Alain
Dfsort is not yet able to read files backwards, writing records one above the other.
If it was, we could use the group key technique from a copy, treating TRL as HDR |
|