sureshpathi10
Active User
Joined: 03 May 2010 Posts: 154 Location: Kuala Lumpur
|
|
|
|
Hi,
As far I know, you've to check each and every byte for numeric and space.
Here is the code. It may be big, but as long as it works, its fine, I guess.
Code: |
//STEP0001 EXEC PGM=SORT
//SORTIN DD *
0002GPSAR7001CART1234567892013033099991212A111111100.00PCUSD
0002GPSAR7002CART1234567892013033099991212 100.00PCUSD
0002GPSAR7003CART1234567892013033099991212 200.00PCUSD
0002GPSAR7003CART1234567892013033099991212 300 200.00PCUSD
0002GPSAR7003CART12345678920130330999912121111111100.AAPCUSD
0002GPSAR7003CART1234567892013033099991212 100.00 PCUSD
0002GPSAR7003CART1234567892013043099991212 5000 78 .44PCUSD
0002GPSAR7003CART1234567892013011099991212995000 78 .44PCUSD
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE COND=(53,1,CH,EQ,C'.',AND,54,2,FS,EQ,NUM)
INREC IFTHEN=(WHEN=(43,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(43,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(43,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(44,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(44,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(44,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(45,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(45,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(45,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(46,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(46,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(46,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(47,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(47,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(47,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(48,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(48,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(48,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(49,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(49,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(49,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(50,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(50,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(50,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(51,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(51,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(51,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(52,1,FS,NE,NUM,AND,43,1,CH,NE,X'40'),
OVERLAY=(81:C'I'),HIT=NEXT),
IFTHEN=(WHEN=(52,1,FS,EQ,NUM,AND,81,1,CH,NE,C'I'),
OVERLAY=(81:C'N'),HIT=NEXT),
IFTHEN=(WHEN=(52,1,CH,EQ,X'40',AND,81,1,CH,EQ,C'N'),
OVERLAY=(81:C'I'),HIT=NEXT)
OUTFIL OMIT=(81,1,CH,EQ,C'I'),BUILD(1,80)
|
Here is the output:
Code: |
0002GPSAR7002CART1234567892013033099991212 100.00PCUSD
0002GPSAR7003CART1234567892013033099991212 200.00PCUSD
|
Really appreciate if anyone come up with simple sort. |
|