| 
 | 
Oh, I perfer to see...
/free
Dou %eof(myfile);
  Read myfile;
  If %eof(myfile);
    Leave;
  Endif;
  If Itactv = 'N';
    Iter;
  Endif;
// process
 Enddo;
Jeff Stevens
Mize, Houser & Co. P.A.
913 451 1882
JStevens@xxxxxxxxxxxxxx
"Marvin Radding" <MRadding@xxxxxxxxxxxx> 
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
08/19/2005 12:07 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
"RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
cc
Subject
RE: read on a do loop
Except that sometimes you won't want to leave.  For instance, an active
flag can be added to the code with no other changes
/free
Dou %eof(myfile);
  Read myfile;
  If %eof(myfile);
     Or itactv = 'N';
    Iter;
  Endif;
// process
 Enddo;
Add a line or remove a line with no other changes necessary.  If you use
'leave' then you have to change it to an iter anyway. 
Maybe as clear but easy to maintain.  A balance achieved since there is
no perfect solution.
Marvin
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Holden Tommy
Sent: Friday, August 19, 2005 7:33 AM
To: RPG programming on the AS400 / iSeries
Subject: RE: read on a do loop
Why iter??  A leave would be more clear in this case.... 
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Marvin Radding
Sent: Friday, August 19, 2005 9:30 AM
To: RPG programming on the AS400 / iSeries
Subject: RE: read on a do loop
[Marvin Radding:] I have been using iter for a few years now.
[Marvin Radding:]
Here is my code:
/free
  Setll myfile;
  Dou %eof(myfile);
    Read myfile;
    If %eof(myfile);
      Iter;
    Endif;
// other processing
  Enddo;
/end-free
One thing I like about this paradigm, when I decide I want to skip this
record a simple 'iter' will get me the next record.  Simple and easy to
understand code.
Marvin
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of rob@xxxxxxxxx
Sent: Friday, August 19, 2005 8:41 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: read on a do loop
Since I've developed a fondness for iter I'd like to do something like
...
setll(e) MyFile Mykey;
dou %status(reade(e) MyFile MyKey)<>0;
  // process
  ...
  iter;
  else;
  ...
EndDo;
I take it the way to do this is to make a one statement subprocedure
that does the reade and make the code look like
setll(e) MyFile Mykey;
dou ReadLoopProc<>0;
  // process
  ...
  iter;
  else;
  ...
EndDo;
P ReadLoopProc   b
D ReadLoopProc   PI   like(returnvar)
D  returnvar      s            5i 0
/free
 reade(e) MyFile MyKey;
 returnvar=%status(MyFile);
 return returnvar;
/end-free
P ReadLoopProc  E
Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com
--
--
This is the RPG programming on the AS400 / 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 mailing list archive is Copyright 1997-2025 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.