× 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.



I have to agree with Paul here. The problem is that the EOF indicator is
broken, or at least misnamed. It should reflect the state of the file
pointer, on if the pointer is pointing to the end of the file, or off if
the file pointer is not pointing to the end of the file. Unfortunately
since the EOF indicator is not set during a CHAIN or SETxx, it will not
always be accurate, and would be more accurately called a "read
successful" indicator. 
The %EOF BIF on the other hand can correctly reflect the current state
of the file pointer. If the file pointer is at the end of the file %EOF
is on, otherwise it is off. Since a successful CHAIN will move the file
pointer to somewhere other than the end of the file, it MUST set %EOF
off. Likewise since an unsuccessful CHAIN does not move the file
pointer, it MAY NOT change the state of %EOF. 

The %FOUND BIF on the other hand reflects the success of the last
attempt to find a specific item, a record in the case of CHAIN or
SETxx.

There are no inconsistencies, except that %EOF actually reflects the
current location of the file pointer in the file. What you appear to
want is a %FILEOPPERATIONSUCCESSFUL BIF that was on if CHAIN, SETxx,
READx, WRITE, UPDATE, or DELETE succeeded, and off if they didn't.

If a CHAIN or SETxx operation is successful you know that you are not
at the end of the file, therefore %EOF will be off.
If a CHAIN or SETxx is unsuccessful, you do not know if you are at the
end of the file, therefore %EOF should not be changed.
If a READx is successful you know that you are not at the end of the
file, therefore %EOF will be off.
If a READx is unsuccessful, you know that you are at the end of the
file, therefore %EOF will be on. 
If a CHAIN or SETxx operation is successful, it is because you have
found a matching record, therefore %FOUND will be on.
If a CHAIN or SETxx operation is unsuccessful, it is because you have
not found a matching record, therefore %FOUND will be off.

Joe Lee

>>> jt@xxxxxx 03/31/2004 13:02:58 >>>
| -----Original Message-----
| From: rpg400-l-bounces@xxxxxxxxxxxx 
| [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Paul Tuohy
| Sent: Wednesday, March 31, 2004 3:25 PM
| To: RPG programming on the AS400 / iSeries
| Subject: Re: Loop code
|
|
| jt,
|
| <snip>
| > I'm talking that a BIF should be IN A KNOWN STATE.  It's either
| on or off,
| > and that SIGNIFIES the known state.  So it would be a case of
either the
| > CHAIN should do nothing whatsoever with the %EOF, which makes a
lotta
| sense
| > to me.  Or it should set it one way or the other.
| <end snip>
|
| The KNOWN STATE that the %EOF BIF reflects is the status of the file
| pointer - it is or isn't at EOF.
|
| A READ etc. moves the pointer, therefore it can change the state of
EOF.
| A CHAIN can only move the pointer IF the record was found. Only a
| successful
| CHAIN can change the state of EOF.
|
| If the %EOF BIF is to reflect the KNOWN STATE then this is the way it
must
| work.
|
| Paul

You're working backwards from your conclusion to your facts, Paul.

On a CHAIN, and using EITHER the %FOUND or an *IN..  It's either *ON
or
*OFF.  It is NOT left unchanged under any circumstances (unless I'm
very
sadly mistaken, which is slightly possible in this case).  And the
position
of the file pointer after an unsuccessful CHAIN??  Dunno, but it SURE
doesn't have ANYthing to do with the KNOWN STATE of either %FOUND or
the
*IN.

Frankly, Paul, I believe if Hans or Barbara or any number of other
people
were saying the Exact Same Thing I've been saying here..  Well I
believe
you'd be agreeing with them quicker 'n anything.  I think it's because
I
disagreed with your post early on, why you're not seeing the blatant
inconsistencies inherent with the usage of BIF, as it is currently
defined.


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.