View previous topic :: View next topic
Author
Message
vishweshkrishnadevaram New User Joined: 17 Nov 2006Posts: 7
Hi,
I've a cancatenated file which has 20 to 22 header records(record code = 0) follwed by data records(record code = 1). I need to retain the first header record and skip all the header records (i.e. records with first byte value 0) then copy all data records. I think an example will make it clear.
Input:
0XXXXXNJUGAYGSGYD
0XHDGHFDGHHFYEFGH
0KSJHDJSHDUEHREUF
0..............................
(like this around 20 to 22 headers)
1AAAAAAAAAAAAAAA
1BBBBBBBBBBBBBBB
1jdsfhdhfgerurufrufhrug
Output:
0XXXXXNJUGAYGSGYD
1AAAAAAAAAAAAAAA
1BBBBBBBBBBBBBBB
1jdsfhdhfgerurufrufhrug
Can anyone pls suggest the possible sort card for this requirement?
Thanks in advance
Vishwesh
Back to top
nelson.pandian Active User Joined: 09 Apr 2008Posts: 133 Location: Phoenix, AZ
Hi Vishwesh,
Hope this DFSORT/ICETOOL JCL will give you desire output.
Code:
//STEP1 EXEC PGM=ICETOOL,
// COND=(0,NE)
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD *
0XXXXXNJUGAYGSGYD
0XHDGHFDGHHFYEFGH
0KSJHDJSHDUEHREUF
1AAAAAAAAAAAAAAA
1BBBBBBBBBBBBBBB
1JDSFHDHFGERURUFRUFHRUG
/*
//T1 DD DSN=&&T1,DISP=(MOD,PASS),SPACE=(CYL,(1,1),RLSE)
//OUT DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN1) TO(T1) USING(CTL1)
COPY FROM(IN1) TO(T1) USING(CTL2)
COPY FROM(T1) TO(OUT)
/*
//CTL1CNTL DD *
OPTION STOPAFT=1
/*
//CTL2CNTL DD *
INCLUDE COND=(1,1,CH,EQ,C'1')
/*
OUTPUT
Code:
0XXXXXNJUGAYGSGYD
1AAAAAAAAAAAAAAA
1BBBBBBBBBBBBBBB
1JDSFHDHFGERURUFRUFHRUG
Back to top
vishweshkrishnadevaram New User Joined: 17 Nov 2006Posts: 7
I checked it and it's working. Thanks alot Nelson.
Back to top
Skolusu Senior Member Joined: 07 Dec 2007Posts: 2205 Location: San Jose
vishweshkrishnadevaram,
Use the following JCL which will give you the results in just 1 pass. I assumed that your LRECL is 80 and recfm FB
Code:
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
0XXXXXNJUGAYGSGYD
0XHDGHFDGHHFYEFGH
0KSJHDJSHDUEHREUF
0..............................
(like this around 20 to 22 headers)
1AAAAAAAAAAAAAAA
1BBBBBBBBBBBBBBB
1jdsfhdhfgerurufrufhrug
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INREC IFTHEN=(WHEN=(1,1,ZD,EQ,0),OVERLAY=(81:SEQNUM,2,ZD))
OUTFIL BUILD=(1,80),OMIT=(81,2,ZD,GT,1)
/*
Back to top
Please enable JavaScript!