Bruno Oliveira
New User
Joined: 28 Jan 2010 Posts: 16 Location: Portugal
|
|
|
|
Hi!
I know that DFSORT can COUNT records, and put a TEXT into a output file but I have a problem that with this:
I have this input file - named HEADERS:
Code: |
0 XXXXXXXXXX
1 XXXXXXXXXX
1 XXXXXXXXXX
0 XXXXXXXXXX
1 XXXXXXXXXX
0 XXXXXXXXXX
1 XXXXXXXXXX |
And this input file - named TEMPLATE:
Code: |
ALLOCATE DATASET('XXXX.SXS.FILE.G????V00') NEW REUSE CATALOG -
LIKE('XXXX.SXS.OTHER.FILE') |
I want to repeat the file TEMPLATE X times where X is the count of zeros in byte 1 of HEADERS. At the same time I need to replace string '????' by the sequence from 1 until the count of zeros in byte 1 of input file, like this.
Code: |
ALLOCATE DATASET('XXXX.SXS.FILE.G0001V00') NEW REUSE CATALOG -
LIKE('XXXX.SXS.OTHER.FILE')
ALLOCATE DATASET('XXXX.SXS.FILE.G0002V00') NEW REUSE CATALOG -
LIKE('XXXX.SXS.OTHER.FILE')
ALLOCATE DATASET('XXXX.SXS.FILE.G0003V00') NEW REUSE CATALOG -
LIKE('XXXX.SXS.OTHER.FILE')
|
Can this be done with DFSORT?
Thank you,
Bruno Oliveira |
|
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
Bruno Oliveira,
Use the following DFSORT JCL which will give you the desired results.
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
0 XXXXXXXXXX
1 XXXXXXXXXX
1 XXXXXXXXXX
0 XXXXXXXXXX
1 XXXXXXXXXX
0 XXXXXXXXXX
1 XXXXXXXXXX
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE COND=(1,1,CH,EQ,C'0')
OUTFIL BUILD=(C'ALLOCATE DATASET(''',
C'XXXX.SXS.FILE.G',SEQNUM,4,ZD,C'V00''',
C') NEW REUSE CATALOG - ',/,
C'LIKE(''',
C'XXXX.SXS.OTHER.FILE''',C')',80:X)
//* |
|
|