Quantcast
Channel: IBM Mainframe Computers Forums
Viewing all articles
Browse latest Browse all 8500

DFSORT/ICETOOL :: RE: Performing arithmetic on input field

$
0
0
Author: zh_lad
Subject: Reply to: Performing arithmetic on input field
Posted: Wed Feb 08, 2017 7:31 pm (GMT 5.5)

I have managed to calculate check digit using:

Code:
//SORTIN   DD *                             
518791041070069                             
518621031103021                             
518621031103022                             
518621031103023                             
494000111111111                             
456215111111112                             
420376111111113                             
457150111111114                             
446272111111115                             
431940111111116                             
//SORTOUT  DD SYSOUT=*                     
//SYSIN    DD *                             
  OPTION COPY                               
  INREC IFTHEN=(WHEN=INIT,                 
        BUILD=(1,15,1,1,UFF,MUL,+2,EDIT(TT),
                    2,1,UFF,MUL,+1,EDIT(TT),
                    3,1,UFF,MUL,+2,EDIT(TT),
                    4,1,UFF,MUL,+1,EDIT(TT),
                    5,1,UFF,MUL,+2,EDIT(TT),
                    6,1,UFF,MUL,+1,EDIT(TT),   
                    7,1,UFF,MUL,+2,EDIT(TT),   
                    8,1,UFF,MUL,+1,EDIT(TT),   
                    9,1,UFF,MUL,+2,EDIT(TT),   
                   10,1,UFF,MUL,+1,EDIT(TT),   
                   11,1,UFF,MUL,+2,EDIT(TT),   
                   12,1,UFF,MUL,+1,EDIT(TT),   
                   13,1,UFF,MUL,+2,EDIT(TT),   
                   14,1,UFF,MUL,+1,EDIT(TT),   
                   15,1,UFF,MUL,+2,EDIT(TT))), 
        IFTHEN=(WHEN=INIT,                     
        BUILD=(1,15,(16,1,ZD,ADD,               
                     17,1,ZD,ADD,               
                     18,1,ZD,ADD,               
                     19,1,ZD,ADD,               
                     20,1,ZD,ADD,               
                     21,1,ZD,ADD,               
                     22,1,ZD,ADD,               
                     23,1,ZD,ADD,               
                     24,1,ZD,ADD,               
                     25,1,ZD,ADD,               
                     26,1,ZD,ADD,               
                     27,1,ZD,ADD,     
                     28,1,ZD,ADD,     
                     29,1,ZD,ADD,     
                     30,1,ZD,ADD,     
                     31,1,ZD,ADD,     
                     32,1,ZD,ADD,     
                     33,1,ZD,ADD,     
                     34,1,ZD,ADD,     
                     35,1,ZD,ADD,     
                     36,1,ZD,ADD,     
                     37,1,ZD,ADD,     
                     38,1,ZD,ADD,     
                     39,1,ZD,ADD,     
                     40,1,ZD,ADD,     
                     41,1,ZD,ADD,     
                     42,1,ZD,ADD,     
                     43,1,ZD,ADD,     
                     44,1,ZD,ADD,     
                     45,1,ZD,ADD,     
                     46,1,ZD),MUL,+9))
   OUTREC FIELDS=(1,15,30,1)
//SYSOUT   DD SYSOUT=*       
//SYSUDUMP DD SYSOUT=*       


Code:
Output:
5187910410700698
5186210311030217
5186210311030225
5186210311030233
4940001111111111
4562151111111129
4203761111111138
4571501111111140
4462721111111153
4319401111111165


Is there any better way to write above code? Thanks.


Viewing all articles
Browse latest Browse all 8500

Trending Articles