Magesh_J Intermediate

Joined: 21 Jun 2014 Posts: 259 Topics: 54
|
Posted: Wed Jul 01, 2015 8:42 am Post subject: |
|
|
Here is the solution. The basic idea is to change all the valid characters to x'00' and then subtract the binary value individually.
for example if you have name as 'ABC@'. Now we will replace a,b,c with x'00'
now subtract each individual byte with the replaced value
A in binary is 192 and when subtrac 0 from it, it will still be 192. so the value remains the same. but for @ the subtraction results in 0 as we subtracting its own value. Now we can validate anything which is a binary zero to be replaced with space.
This solution was provided by Kolusu, dont forget to thank him.
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
00002015-06-25
00012322MRS NEHA PATIL2
00045633MRS VIJETA PATOLE
00078944MR KIRAN/PATIL1
00011155MR PARESH-THOMBARE
00022266MR PRAVEEN@DAWAN
00025677MR SUBHAS*YADAV2
99990000000006
//SORTOUT DD SYSOUT=*
//BAD DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(281:13,30)),
IFTHEN=(WHEN=INIT,FINDREP=(STARTPOS=281,OUT=X'00',
IN=(C'A',C'B',C'C',C'D',C'E',C'F',C'G',C'H',C'I',
C'J',C'K',C'L',C'M',C'N',C'O',C'P',C'Q',C'R',
C'S',C'T',C'U',C'V',C'W',C'X',C'Y',C'Z',C'0',
C'1',C'2',C'3',C'4',C'5',C'6',C'7',C'8',C'9',
C'&',C'-',C'/',C'^',C' '))),
IFTHEN=(WHEN=INIT,OVERLAY=(281:13,1,BI,SUB,281,1,BI,BI,LENGTH=1,
282:14,1,BI,SUB,282,1,BI,BI,LENGTH=1,
283:15,1,BI,SUB,283,1,BI,BI,LENGTH=1,
284:16,1,BI,SUB,284,1,BI,BI,LENGTH=1,
285:17,1,BI,SUB,285,1,BI,BI,LENGTH=1,
286:18,1,BI,SUB,286,1,BI,BI,LENGTH=1,
287:19,1,BI,SUB,287,1,BI,BI,LENGTH=1,
288:20,1,BI,SUB,288,1,BI,BI,LENGTH=1,
289:21,1,BI,SUB,289,1,BI,BI,LENGTH=1,
290:22,1,BI,SUB,290,1,BI,BI,LENGTH=1,
291:23,1,BI,SUB,291,1,BI,BI,LENGTH=1,
292:24,1,BI,SUB,292,1,BI,BI,LENGTH=1,
293:25,1,BI,SUB,293,1,BI,BI,LENGTH=1,
294:26,1,BI,SUB,294,1,BI,BI,LENGTH=1,
295:27,1,BI,SUB,295,1,BI,BI,LENGTH=1,
296:28,1,BI,SUB,296,1,BI,BI,LENGTH=1,
297:29,1,BI,SUB,297,1,BI,BI,LENGTH=1,
298:30,1,BI,SUB,298,1,BI,BI,LENGTH=1,
299:31,1,BI,SUB,299,1,BI,BI,LENGTH=1,
300:32,1,BI,SUB,300,1,BI,BI,LENGTH=1,
301:33,1,BI,SUB,301,1,BI,BI,LENGTH=1,
302:34,1,BI,SUB,302,1,BI,BI,LENGTH=1,
303:35,1,BI,SUB,303,1,BI,BI,LENGTH=1,
304:36,1,BI,SUB,304,1,BI,BI,LENGTH=1,
305:37,1,BI,SUB,305,1,BI,BI,LENGTH=1,
306:38,1,BI,SUB,306,1,BI,BI,LENGTH=1,
307:39,1,BI,SUB,307,1,BI,BI,LENGTH=1,
308:40,1,BI,SUB,308,1,BI,BI,LENGTH=1,
309:41,1,BI,SUB,309,1,BI,BI,LENGTH=1,
310:42,1,BI,SUB,310,1,BI,BI,LENGTH=1)),
IFTHEN=(WHEN=INIT,FINDREP=(STARTPOS=281,IN=X'00',OUT=X'40'))
OUTFIL IFOUTLEN=280,
IFTHEN=(WHEN=(13,30,CH,NE,281,30,CH),OVERLAY=(13:281,30))
OUTFIL FNAMES=BAD,INCLUDE=(13,30,CH,NE,281,30,CH),
BUILD=(1,280)
//*
|
Regards,
Magesh |
|