kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12359 Topics: 75 Location: San Jose
|
Posted: Wed Dec 20, 2017 12:19 pm Post subject: |
|
|
sjetty wrote: | Hi Koulsu,
The data is in character format. I was trying for first option you mentioned that can be done in single pass but I am not sure how we can achieve i.e subtract the binary values & validate them. If possible can you please show me an example for this that would be helpful.
Thanks,
Siva |
Siva,
You subtract byte 1 with byte 2 thru 10 individually treating them as binary. So if there is a duplicate alphabet the subtraction will result in X'00' and you repeat this for every individual byte. so the number of subtractions will 9 , 8, 7 ....
The validation is done using a CHANGE command. Try this DFSORT JCL which will give you the desired results
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
----+----1----+----2----+----3----+----4----+----5----+----6----+----7---
SJETTY WANTS TO REMOVE DUPLICATES FROM 1ST 10 BYTES
VREELAND
KOLUSU
DAVE BACH
ARUN
ALBERT
CLOUSTON
KEEP
SOMARAJAN
WILLIAM
HARRY
SSS
A B C D E
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
ALTSEQ CODE=(407B) $ CHANGE ' ' TO '#' FOR EMBED ' ' SAVE
INREC IFOUTLEN=80,
IFTHEN=(WHEN=INIT,
OVERLAY=(081:01,10,JFY=(SHIFT=LEFT,TRAIL=C'@@@@@@@@@@',
LENGTH=10),
081:81,10,TRAN=ALTSEQ,
091:81,1,BI,SUB,82,01,BI,BI,LENGTH=1,
81,1,BI,SUB,83,01,BI,BI,LENGTH=1,
81,1,BI,SUB,84,01,BI,BI,LENGTH=1,
81,1,BI,SUB,85,01,BI,BI,LENGTH=1,
81,1,BI,SUB,86,01,BI,BI,LENGTH=1,
81,1,BI,SUB,87,01,BI,BI,LENGTH=1,
81,1,BI,SUB,88,01,BI,BI,LENGTH=1,
81,1,BI,SUB,89,01,BI,BI,LENGTH=1,
81,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:099,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:098,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:097,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
087:096,1,CHANGE=(1,X'00',C' '),NOMATCH=(87,1),
086:095,1,CHANGE=(1,X'00',C' '),NOMATCH=(86,1),
085:094,1,CHANGE=(1,X'00',C' '),NOMATCH=(85,1),
084:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(84,1),
083:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(83,1),
082:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(82,1),
091:8X,
091:82,1,BI,SUB,83,01,BI,BI,LENGTH=1,
82,1,BI,SUB,84,01,BI,BI,LENGTH=1,
82,1,BI,SUB,85,01,BI,BI,LENGTH=1,
82,1,BI,SUB,86,01,BI,BI,LENGTH=1,
82,1,BI,SUB,87,01,BI,BI,LENGTH=1,
82,1,BI,SUB,88,01,BI,BI,LENGTH=1,
82,1,BI,SUB,89,01,BI,BI,LENGTH=1,
82,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:098,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:097,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:096,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
087:095,1,CHANGE=(1,X'00',C' '),NOMATCH=(87,1),
086:094,1,CHANGE=(1,X'00',C' '),NOMATCH=(86,1),
085:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(85,1),
084:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(84,1),
083:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(83,1),
091:7X,
091:83,1,BI,SUB,84,01,BI,BI,LENGTH=1,
83,1,BI,SUB,85,01,BI,BI,LENGTH=1,
83,1,BI,SUB,86,01,BI,BI,LENGTH=1,
83,1,BI,SUB,87,01,BI,BI,LENGTH=1,
83,1,BI,SUB,88,01,BI,BI,LENGTH=1,
83,1,BI,SUB,89,01,BI,BI,LENGTH=1,
83,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:097,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:096,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:095,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
087:094,1,CHANGE=(1,X'00',C' '),NOMATCH=(87,1),
086:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(86,1),
085:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(85,1),
084:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(84,1),
091:6X,
091:84,1,BI,SUB,85,01,BI,BI,LENGTH=1,
84,1,BI,SUB,86,01,BI,BI,LENGTH=1,
84,1,BI,SUB,87,01,BI,BI,LENGTH=1,
84,1,BI,SUB,88,01,BI,BI,LENGTH=1,
84,1,BI,SUB,89,01,BI,BI,LENGTH=1,
84,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:096,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:095,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:094,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
087:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(87,1),
086:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(86,1),
085:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(85,1),
091:5X,
091:85,1,BI,SUB,86,01,BI,BI,LENGTH=1,
85,1,BI,SUB,87,01,BI,BI,LENGTH=1,
85,1,BI,SUB,88,01,BI,BI,LENGTH=1,
85,1,BI,SUB,89,01,BI,BI,LENGTH=1,
85,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:095,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:094,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
087:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(87,1),
086:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(86,1),
091:4X,
091:86,1,BI,SUB,87,01,BI,BI,LENGTH=1,
86,1,BI,SUB,88,01,BI,BI,LENGTH=1,
86,1,BI,SUB,89,01,BI,BI,LENGTH=1,
86,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:094,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
087:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(87,1),
091:3X,
091:87,1,BI,SUB,88,01,BI,BI,LENGTH=1,
87,1,BI,SUB,89,01,BI,BI,LENGTH=1,
87,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:093,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
088:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(88,1),
091:2X,
091:88,1,BI,SUB,89,01,BI,BI,LENGTH=1,
88,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:092,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
089:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(89,1),
091:X,
091:89,1,BI,SUB,90,01,BI,BI,LENGTH=1,
090:091,1,CHANGE=(1,X'00',C' '),NOMATCH=(90,1),
081:081,10,SQZ=(SHIFT=LEFT))),
IFTHEN=(WHEN=INIT,
FINDREP=(IN=(C'#',C'@'),OUT=C' ')),
IFTHEN=(WHEN=INIT,
OVERLAY=(01:81,10))
//* |
_________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
www.linkedin.com/in/kolusu |
|