Reputation: 11
Input:
----+----1----+----2----+
0112 CHENNAI
0104 HARRISON
0105 HARINI KRISHNAN
Output:
----+----1----+----2----+----3----+
0112 CHENNAI N
0104 HARRISON R
0105 HARINI KRISHNAN H A R I N
I tried with IFTHEN with Overlay but it doesn't work.
Can anyone help me with this?
Upvotes: 0
Views: 63
Reputation: 556
The following DFSORT/ICETOOL JCL will give you the desired results. The Repeating characters are shown at Position 81 on wards.
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//INP DD *
0112 CHENNAI
0104 HARRISON
0105 HARINI KRISHNAN
0106 ABCDEFGHIJKLMNO
//TMP DD DSN=&&TMP,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE)
//OUT DD SYSOUT=*
//TOOLIN DD *
RESIZE FROM(INP) TO(TMP) TOLEN(80) USING(CTL1)
SORT FROM(TMP) TO(OUT) USING(CTL2)
/*
//CTL1CNTL DD *
OPTION COPY
INREC IFOUTLEN=1201,
IFTHEN=(WHEN=INIT,
OVERLAY=(1201:06,15,SQZ=(SHIFT=LEFT))),
IFTHEN=(WHEN=INIT,
BUILD=(001,080,
001,005,1201,001,74X,
001,005,1202,001,74X,
001,005,1203,001,74X,
001,005,1204,001,74X,
001,005,1205,001,74X,
001,005,1206,001,74X,
001,005,1207,001,74X,
001,005,1208,001,74X,
001,005,1209,001,74X,
001,005,1210,001,74X,
001,005,1211,001,74X,
001,005,1212,001,74X,
001,005,1213,001,74X,
001,005,1214,001,74X,
001,005,1215,001,74X))
OUTFIL OMIT=(006,01,CH,EQ,C' '),
IFTHEN=(WHEN=GROUP,KEYBEGIN=(01,05),PUSH=(81:ID=8,90:SEQ=2)),
IFTHEN=(WHEN=INIT,OVERLAY=(93:C'00')),
IFTHEN=(WHEN=(90,02,ZD,EQ,1),OVERLAY=(95:X'FF')),
IFTHEN=(WHEN=NONE,OVERLAY=(95:06,01,93:C'01'))
/*
//CTL2CNTL DD *
SORT FIELDS=(81,08,CH,A,
95,01,CH,A),EQUALS
SUM FIELDS=(93,02,ZD)
OUTREC IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,02,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(101:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,03,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(103:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,04,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(105:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,05,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(107:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,06,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(109:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,07,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(111:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,08,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(113:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,09,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(115:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,10,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(117:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,11,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(119:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,12,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(121:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,13,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(123:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,14,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(125:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,15,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(127:95,01)),
IFTHEN=(WHEN=GROUP,BEGIN=(90,02,ZD,EQ,16,AND,93,02,ZD,GT,1),
END=(90,02,ZD,EQ,01),PUSH=(129:95,01))
OUTFIL REMOVECC,NODETAIL,
SECTIONS=(81,08,
TRAILER3=(01,80,101,29))
/*
The output of this is
0112 CHENNAI N
0104 HARRISON R
0105 HARINI KRISHNAN H A R I N
0106 ABCDEFGHIJKLMNO
Upvotes: 1