Page 1 of 1

How to keep the header with group data?

PostPosted: Thu Nov 01, 2007 11:12 am
by j2422tw
My request is to keep the group data and its header.

The input :

Header:            date1 time 1
Data item A
Data item A
Data item A
Data item A
Data item A
Header:            date1 time2
Header:            date1 time3
Header:            date1 time4
Header:            date2 time1
Header:            date2 time2
Header:            date2 time3
Header:            date2 time4
Data item B
Data item B
Data item B
Header:            date2 time5
Header:            date2 time6
Header:            date2 time7
Data item C
Data item C
Data item C
Data item C
Header:            date2 time8
Header:            date3 time1


The output:

Header:            date1 time 1
Data item A
Data item A
Data item A
Data item A
Data item A
Header:            date2 time4
Data item B
Data item B
Data item B
Header:            date2 time7
Data item C
Data item C
Data item C
Data item C


The record length is 40 and fix.

Thanks very much!

Re: How to keep the header with group data?

PostPosted: Fri Nov 02, 2007 1:30 am
by Frank Yaeger
Here's a DFSORT/ICETOOL job that will do what you asked for:

//S1    EXEC  PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG  DD SYSOUT=*
//IN DD DSN=...  input file (FB/40)
//OUT DD DSN=...  output file (FB/40)
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(41,8,PD) KEEPBASE -
 WITHALL WITH(1,40) USING(CTL1)
/*
//CTL1CNTL DD *
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(41:SEQNUM,8,PD)),
        IFTHEN=(WHEN=(1,7,CH,EQ,C'Header:'),
                OVERLAY=(41:SEQNUM,8,PD)),
        IFTHEN=(WHEN=NONE,
                OVERLAY=(49:SEQNUM,8,PD,
                         41:41,8,PD,SUB,49,8,PD,TO=PD,LENGTH=8))
  OUTFIL FNAMES=OUT,BUILD=(1,40)
/*

Re: How to keep the header with group data?

PostPosted: Fri Nov 02, 2007 6:40 am
by j2422tw
:)
That's exactly I want, thank you very much.