Of course that is an option, particularly the COBOL one. I am personally very familiar with awk and z/OS awk does support "classic" datasets via DD, but very few other programmers in the shop would know how to use it, or support it in my absence.
And an E15 exit is always a possibility. I was just wondering if it was strictly necessary or if there was an existing control-card-only option that would do what I want. Peter -----Original Message----- From: IBM Mainframe Discussion List <[email protected]> On Behalf Of Nash, Jonathan S. Sent: Wednesday, September 16, 2020 8:10 PM To: [email protected] Subject: COBOL ? Re: SORT selection question Why not just write a small program ? COBOL ? AWK ? :-) SED :-) -----Original Message----- From: IBM Mainframe Discussion List <[email protected]> On Behalf Of Scott Barry Sent: Wednesday, September 16, 2020 6:36 PM To: [email protected] Subject: [EXTERNAL] Re: SORT selection question With DFSORT/SYNCSORT in mind, possibly a two-step process where the first step interrogates an input data stream (no output generated, mostly for optimization) to detect a relative-record# where the limit-key-value (COND-argument) is then passed to a second step (necessary control statement generated, likely) that then reads/writes up to the STOPWHEN (equivalent construct yield) is encountered. For comparison, SAS or WPS can accomplish this objective using the DATA step process, with about half a dozen or less SAS language statements. Scott Barry SBBTech LLC On Wed, 16 Sep 2020 15:39:07 -0500, Paul Gilmartin <[email protected]> wrote: >On Wed, 16 Sep 2020 20:17:10 +0000, Farley, Peter x23353 wrote: > >>Thanks Sri, I am aware of the STOPAFT parameter, but it uses a hard-coded >>count. When the goal is to find ALL records with the selected values and one >>does not know in advance how many there are, it is not as helpful as it could >>be. >> >>I was thinking of a command similar to OMIT / INCLUDE, something like: >> >>STOPWHEN COND=(key value greater than this stop reading) >> >>E.G., STOPWHEN(1,3,'AC ') >> >I'm imagining something like: > ...STOPAFT=1 > ...COND=(1,3,CH,GT,C'ABC') > >Certainly stops at (almost) the right place. but Kolusu indicates, there's >no way to select COND=(1,3,CH,EQ,C'ABC') for output. > > >>-----Original Message----- >>From: Sri h Kolusu >>Sent: Wednesday, September 16, 2020 3:54 PM >> >>>>> When using SORT (either DFSORT or SYNCSORT) to select a relatively >>> small sample of records by (a) particular key value(s) from a *very >>> large* sequential file, >> >>You can use STOPAFT parm to stop reading the input once you get to a >>threshold value. For example if you have file with 300 million records and >>if you are only interested in only 100 records for the key 'ABC', then you >>can use the following >> >>//SYSIN DD * >> OPTION COPY,STOPAFT=100 >> INCLUDE COND=(1,3,CH,EQ,C'ABC') >>/* > -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
