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

Reply via email to