Bill,
I apologize for the oversight in parsing the dataset name. As soon as I
sent my earlier reply I realized that I did not cover all the scenarios
for the dataset name. If the HLQ is less than 6 bytes the parse would
grab the time which starts before the dataset name.
for example the records in red color
Dec 29 10:23 HOLDDATA.BIN
Apr 3 12:28 REPORT1.TXT
Nov 15 11:33 NEWDATA.BIN
Nov 15 11:34 a.BIN
Nov 15 11:35 abc.BIN
Nov 15 11:36 abcd.BIN
Nov 15 11:37 abcde.BIN
Nov 15 11:38 abcdef.BIN
Nov 15 11:39 abcdefg.BIN
Nov 15 11:40 abcdefgh.BIN
So you need to change your INREC IFTHEN statements to handle these dataset
names. Here are the updated control cards ( Only the INREC IFTHEN
statments need to be changed.)
INREC IFOUTLEN=80,
IFTHEN=(WHEN=(1,3,CH,EQ,C'250'),
PARSE=(%01=(STARTAFT=C'"',ENDBEFR=C'"',FIXLEN=50)),
BUILD=(C'250 ',%01)),
IFTHEN=(WHEN=(1,3,CH,EQ,C'EZA'),
PARSE=(%=(ENDAT=C'.BIN'),
%02=(SUBPOS=12,FIXLEN=12)),
BUILD=(C'BIN ',%02),HIT=NEXT),
IFTHEN=(WHEN=(1,3,CH,EQ,C'BIN'),
OVERLAY=(5:5,12,JFY=(SHIFT=LEFT)),HIT=NEXT),
IFTHEN=(WHEN=(1,3,CH,EQ,C'BIN',AND,5,8,SS,EQ,C' '),
PARSE=(%03=(ABSPOS=5,STARTAFT=C' ',ENDAT=C'.BIN',FIXLEN=12)),
BUILD=(01:C'BIN ',56:%03)),
IFTHEN=(WHEN=(1,3,CH,EQ,C'BIN',AND,5,8,SS,NE,C' '),
BUILD=(01:C'BIN ',56:5,12))
Further if you have any questions please let me know
Thanks,
Kolusu
DFSORT Development
From: Bill Ashton <[email protected]>
To: [email protected]
Date: 04/21/2017 01:41 PM
Subject: Re: How to parse rows using SORT
Sent by: IBM Mainframe Discussion List <[email protected]>
Thanks, Kolusu - that is better now! I will go and learn about HIT=NEXT,
as
I have not run into that before.
Have a good weekend!
On Fri, Apr 21, 2017 at 4:24 PM, Sri h Kolusu <[email protected]> wrote:
> Bill,
>
> You really don't need to complicate the control to get the desired
> results. I have optimized your control cards a bit which would give you
> the desired results
>
> //SYSIN DD *
> OPTION COPY
> INCLUDE COND=(1,003,CH,EQ,C'250',OR,
> 1,100,SS,EQ,C'.BIN ')
>
> INREC IFOUTLEN=80,
> IFTHEN=(WHEN=(1,3,CH,EQ,C'250'),
> PARSE=(%01=(STARTAFT=C'"',ENDBEFR=C'"',FIXLEN=50)),
> BUILD=(C'250 ',%01)),
>
> IFTHEN=(WHEN=(1,3,CH,EQ,C'EZA'),
> PARSE=(%=(ENDAT=C'.BIN'),
> %02=(SUBPOS=12,FIXLEN=12)),
> BUILD=(C'BIN ',%02),HIT=NEXT),
>
> IFTHEN=(WHEN=(1,3,CH,EQ,C'BIN'),
> PARSE=(%03=(STARTAFT=C' ',ENDAT=C'.BIN',FIXLEN=12)),
> BUILD=(01:C'BIN ',56:%03))
>
> OUTREC IFTHEN=(WHEN=GROUP,BEGIN=(1,3,CH,EQ,C'250'),PUSH=(05:5,50))
>
> OUTFIL INCLUDE=(1,3,CH,EQ,C'BIN'),
> BUILD=(05,75,SQZ=(SHIFT=LEFT,LEAD=C'get ',MID=C'/',
> TRAIL=C' //DD:LIST',LENGTH=80))
> //*
>
> The output from this job is
>
> get /sys01/new2017/input/TESTFL1.BIN //DD:LIST
> get /sys12/y2017/processed/HOLDDATA.BIN //DD:LIST
> get /sys12/y2017/processed/NEWDATA.BIN //DD:LIST
>
>
> Further if you have any questions please let me know
>
> Thanks,
> Sri Hari Kolusu
> DFSORT Development
> IBM Corporation
> Email: [email protected]
> Phone: 520-799-2237 Tie Line: 321-2237
>
> IBM Mainframe Discussion List <[email protected]> wrote on
> 04/21/2017 12:45:56 PM:
>
> > From: Bill Ashton <[email protected]>
> > To: [email protected]
> > Date: 04/21/2017 12:46 PM
> > Subject: Re: How to parse rows using SORT
> > Sent by: IBM Mainframe Discussion List <[email protected]>
> >
> > Hi Kolusu, I think I messed up my original note by trying to keep the
> > characters in order.
> >
> > I have attached a file that shows my JCL with input and output
expected.
> > The current run, though has a problem with the Parse for %02 and %03.
I
> > hope you can help me with this - it is probably simple.
> >
> > Thanks!
> > B
> >
> > On Fri, Apr 21, 2017 at 2:05 PM, Sri h Kolusu <[email protected]>
> wrote:
> >
> > > Bill,
> > >
> > > Why bother about the position. From the looks of it, you need to
pick
> the
> > > last qualifier. So go find the last byte space and then subtract 12
> bytes
> > > to get to your dataset name.
> > >
> > > something like this
> > >
> > > //STEP0100 EXEC PGM=SORT
> > > //SYSOUT DD SYSOUT=*
> > > //SORTIN DD *
> > >
>
EZA2284I`-RW-R--R--```1`FTPUSER``FTPUSERS```42160`SEP``2``2016`TESTFL1.BIN
> > >
> > >
> EZA2284I`-RW-R--R--```1`FTPUSER``FTPUSERS``442160`NOV`10`15:26`TEST2.TXT
> > > //SORTOUT DD SYSOUT=*
> > > //SYSIN DD *
> > > OPTION COPY
> > > INREC IFTHEN=(WHEN=INIT,
> > > PARSE=(%=(ENDBEFR=C' '),
> > > %01=(SUBPOS=12,FIXLEN=12)),
> > > BUILD=(%01)),
> > >
> > > IFTHEN=(WHEN=(1,12,SS,EQ,C'`'),
> > > PARSE=(%02=(STARTAFT=C'`',FIXLEN=12)),
> > > BUILD=(%02))
> > >
> > > OUTREC BUILD=(1,12,SQZ=(SHIFT=LEFT,LENGTH=80,
> > > LEAD=C' get /thisdirectory/',
> > > TRAIL=C' //DD:LIST'))
> > > //*
> > >
> > >
> > > The outout from this job is
> > >
> > > get /thisdirectory/TESTFL1.BIN //DD:LIST
> > > get /thisdirectory/TEST2.TXT //DD:LIST
> > >
> > >
> > > Further if you have any questions please let me know
> > >
> > >
> > > Thanks,
> > > Kolusu
> > > DFSORT Development
> > > IBM Corporation
> > >
> > >
> > >
> > > From: Bill Ashton <[email protected]>
> > > To: [email protected]
> > > Date: 04/21/2017 10:47 AM
> > > Subject: How to parse rows using SORT
> > > Sent by: IBM Mainframe Discussion List
> <[email protected]>
> > >
> > >
> > >
> > > Hello friends!
> > >
> > > I just ran into a problem, and am a bit confused how to correct
this.
> > >
> > > I am reading the output of an FTP list command, and using SORT to
> capture
> > > and format the FTP GET commands I need. This process is working fine
> for
> > > the most part, and it produces the correct commands most of the
time.
> > > However, I just noticed that the file list is different in one of my
> > > folders, causing me to lose the first character of the filename.
> > >
> > > I had been using this:
> > > PARSE=(%02=(ABSPOS=65,ENDBEFR=C'.',FIXLEN=8),
> > > %03=(FIXLEN=3)),
> > >
> > > but now I find that one of my folders starts the file name in pos
64,
> and
> > > not 65.
> > >
> > > Is there a way to not use ABSPOS=65, but instead to say I want to
> start
> > > following a space after Col 60? In Rexx, I could say to use the 10th
> word,
> > > but I don't want to change the SORT to Rexx now, as this input is
> doing a
> > > number of different things.
> > >
> > > Here is a sample of the file listing (with ` replacing blanks to
keep
> > > spacing intact):
> > >
> > >
>
EZA2284I`-rw-r--r--```1`ftpuser``ftpusers```42160`Sep``2``2016`TESTFL1.BIN
> > >
> EZA2284I`-rw-r--r--```1`ftpuser``ftpusers``442160`Nov`10`15:26`TEST2.TXT
> > >
> > > My output from the Sort is going to say
> > > get /thisdirectory/TESTFL1.BIN //DD:LIST
> > > get /thisdirectory/TEST2.TXT //DD:LIST
> > >
> > > Thanks for your help with this troublesome question!
> > >
> > > --
> > > Thank you and best regards,
> > > *Billy Ashton*
> > >
> > >
----------------------------------------------------------------------
> > > For IBM-MAIN subscribe / signoff / archive access instructions,
> > > send email to [email protected] with the message: INFO
IBM-MAIN
> > >
> > >
> > >
> > >
> > >
> > >
> > >
----------------------------------------------------------------------
> > > For IBM-MAIN subscribe / signoff / archive access instructions,
> > > send email to [email protected] with the message: INFO
IBM-MAIN
> > >
> >
> >
> >
> > --
> > Thank you and best regards,
> > *Billy Ashton*
> >
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to [email protected] with the message: INFO IBM-MAIN
> > [attachment "SORTFILE.txt" deleted by Sri h Kolusu/Silicon Valley/IBM]
>
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
--
Thank you and best regards,
*Billy Ashton*
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN