× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Dave

Thanks for your reply - as I sent to Chuck's reply, I gave incorrect information - SETGT using the highest RRN did turn %found() to *OFF, as it should.

Your point about positioning lines up with what I've been thinking about since posting this. Again, thanks for expanding on that - I had been thinking today - yeah, I know, odd, right? - and came to the thought that "positioning to end of file" is not the same as setting the EOF indicator *ON.

Ay! Ay! Ay! Some days I should have stayed in bed!

Regards
Vern

On 12/6/2015 3:34 PM, David Shaw wrote:
Vern,

I don't have the docs in front of me, but what you're saying doesn't jibe
with my experience.

SETLL and SETGT are positioning operations, not I/O operations. The EOF
condition is set by an I/O operation, not a positioning operation. In your
example, you're positioning to the end of the file, so a subsequent READ
will set EOF. However, a subsequent READP will NOT set EOF, and you can
continue using READP to retrieve all records in the file until you get to
the beginning, at which time EOF will be set if you try to READP past the
beginning.

By this interpretation, SETLL and SETGT should always set record found on
and EOF off, since the correct READ or READP I/O afterwards will always
find a record (assuming the file isn't empty, of course). Does that make
sense, and is it consistent with the documentation you're looking at?

Dave Shaw

On Sun, Dec 6, 2015 at 9:57 AM, Vernon Hamberg <vhamberg@xxxxxxxxxxxxxxx>
wrote:

The ILE RPG Reference says this in the section on SETGT - RPG/400
reference says the same thing =

If the SETGT operation is not successful (no-record-found condition),
the file is positioned to the end of the file.

I've a situation where I'm using SETGT with relative record numbers. If I
have an RRN = last RRN (or greater than that last one), %found() is *ON,
%eof() is *OFF.

So this seems to say that the docs are incorrect. Any verification or
refutation, please?

The statement I'm using is in free format, as here -

setgt(e) 18 file-name;

Thanks
Vern
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.