Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's a DFSORT job that will do what you asked for.
Code: |
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=... input file (FB/23)
//OUT DD DSN=... output file (FB/23)
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(1,14,CH) KEEPNODUPS -
WITHEACH WITH(29,2) WITH(31,2) WITH(33,2) USING(CTL1)
/*
//CTL1CNTL DD *
INREC IFTHEN=(WHEN=INIT,OVERLAY=(25:SEQNUM,1,ZD,RESTART=(1,14))),
IFTHEN=(WHEN=(25,1,ZD,EQ,1,AND,16,1,CH,NE,C' '),
OVERLAY=(27:C'1',16,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,1,AND,18,1,CH,NE,C' '),
OVERLAY=(27:C'2',18,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,1,AND,20,1,CH,NE,C' '),
OVERLAY=(27:C'3',20,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,1,AND,22,1,CH,NE,C' '),
OVERLAY=(27:C'4',22,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,2,AND,16,1,CH,NE,C' '),
OVERLAY=(29:C'1',16,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,2,AND,18,1,CH,NE,C' '),
OVERLAY=(29:C'2',18,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,2,AND,20,1,CH,NE,C' '),
OVERLAY=(29:C'3',20,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,2,AND,22,1,CH,NE,C' '),
OVERLAY=(29:C'4',22,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,3,AND,16,1,CH,NE,C' '),
OVERLAY=(31:C'1',16,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,3,AND,18,1,CH,NE,C' '),
OVERLAY=(31:C'2',18,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,3,AND,20,1,CH,NE,C' '),
OVERLAY=(31:C'3',20,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,3,AND,22,1,CH,NE,C' '),
OVERLAY=(31:C'4',22,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,4,AND,16,1,CH,NE,C' '),
OVERLAY=(33:C'1',16,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,4,AND,18,1,CH,NE,C' '),
OVERLAY=(33:C'2',18,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,4,AND,20,1,CH,NE,C' '),
OVERLAY=(33:C'3',20,1),HIT=NEXT),
IFTHEN=(WHEN=(25,1,ZD,EQ,4,AND,22,1,CH,NE,C' '),
OVERLAY=(33:C'4',22,1))
OUTFIL FNAMES=OUT,
IFOUTLEN=23,
IFTHEN=(WHEN=INIT,OVERLAY=(16:X,18:X,20:X,22:X)),
IFTHEN=(WHEN=(27,1,CH,EQ,C'1'),OVERLAY=(16:28,1),HIT=NEXT),
IFTHEN=(WHEN=(27,1,CH,EQ,C'2'),OVERLAY=(18:28,1),HIT=NEXT),
IFTHEN=(WHEN=(27,1,CH,EQ,C'3'),OVERLAY=(20:28,1),HIT=NEXT),
IFTHEN=(WHEN=(27,1,CH,EQ,C'4'),OVERLAY=(22:28,1),HIT=NEXT),
IFTHEN=(WHEN=(29,1,CH,EQ,C'1'),OVERLAY=(16:30,1),HIT=NEXT),
IFTHEN=(WHEN=(29,1,CH,EQ,C'2'),OVERLAY=(18:30,1),HIT=NEXT),
IFTHEN=(WHEN=(29,1,CH,EQ,C'3'),OVERLAY=(20:30,1),HIT=NEXT),
IFTHEN=(WHEN=(29,1,CH,EQ,C'4'),OVERLAY=(22:30,1),HIT=NEXT),
IFTHEN=(WHEN=(31,1,CH,EQ,C'1'),OVERLAY=(16:32,1),HIT=NEXT),
IFTHEN=(WHEN=(31,1,CH,EQ,C'2'),OVERLAY=(18:32,1),HIT=NEXT),
IFTHEN=(WHEN=(31,1,CH,EQ,C'3'),OVERLAY=(20:32,1),HIT=NEXT),
IFTHEN=(WHEN=(31,1,CH,EQ,C'4'),OVERLAY=(22:32,1),HIT=NEXT),
IFTHEN=(WHEN=(33,1,CH,EQ,C'1'),OVERLAY=(16:34,1),HIT=NEXT),
IFTHEN=(WHEN=(33,1,CH,EQ,C'2'),OVERLAY=(18:34,1),HIT=NEXT),
IFTHEN=(WHEN=(33,1,CH,EQ,C'3'),OVERLAY=(20:34,1),HIT=NEXT),
IFTHEN=(WHEN=(33,1,CH,EQ,C'4'),OVERLAY=(22:34,1))
/*
|
|
|