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