View previous topic :: View next topic
|
Author |
Message |
comp_ashok
New User
Joined: 30 Nov 2007 Posts: 15 Location: India
|
|
|
|
Hi.
My requirement is jcl to do like this:
input file : fb, lrec=7
2222600
2222250
3333700
3333500
7777100
output file: fb, lrec=8
22220850
33331200
77770100
If starting 4 bytes are same in input file we have to sum next 3 bytes and write one record in output file. |
|
Back to top |
|
|
krisprems
Active Member
Joined: 27 Nov 2006 Posts: 649 Location: India
|
|
|
|
Code: |
//****************************
//STEP1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
2222600
2222250
3333700
3333500
7777100
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
INREC OVERLAY=(6:5,3,5:C'0')
SORT FIELDS=(1,4,ZD,A)
SUM FIELDS=(5,4,ZD)
/*
|
SORTOUT
Code: |
22220850
33331200
77770100
|
|
|
Back to top |
|
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's another way to do it with DFSORT using copy which is more efficient than sort (assuming that your records are already in sorted order as shown in your example - if not you can add a SORT statement):
Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
2222600
2222250
3333700
3333500
7777100
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTFIL REMOVECC,NODETAIL,
SECTIONS=(1,4,
TRAILER3=(1,4,TOT=(5,3,ZD,TO=ZD,LENGTH=4)))
/*
|
|
|
Back to top |
|
|
|