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



In your example what would happen if you left the exactly as-is except you
removed the Iter? 
 
---------------------------------
Booth Martin
http://www.martinvt.com
---------------------------------
-------Original Message-------
 
From: RPG programming on the AS400 / iSeries
Date: 08/19/05 13:10:30
To: RPG programming on the AS400 / iSeries
Subject: RE: read on a do loop
 
People have heard me rant on why I stop using CLP.  Every time I go to use
it (and we're on V5R3 in which CL got vastly improved), I run into a
limitation that makes me hit a wall.
I find myself thinking the same way about if's versus select.
Every time I think I have a single case if I come up with 'the third
option'.  I've pretty much made it another mantra to always use select
instead of if.
1 - Nested if's are bug ugly.
2 - Using select makes you think about 'the third option'.
 
  If %eof(myfile);
    Leave;
  Endif;
  If Itactv = 'N';
    Iter;
  Endif;
 
becomes
  Select;
  When %eof(myfile);
    Leave;
  When %status(myfile)<>0;
    // some catastrophic file error occurred and needs to be handled.
  When Itactv='N';
    Iter;
  Other;
    // main body
    ...
  EndSl;
 
Granted, on a 'simple' if you'd only have
if x>y;
  // do this
EndIf;
 
Versus
Select;
When x>y;
  // Do this
Endsl;
 
That's one extra line, but a lot of easier to read code, and less code, if
more comparisons start to be made regarding x and y.
 
 
Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com
 
 
 
 
 
"Marvin Radding" <MRadding@xxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
08/19/2005 12:54 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
 
 
 
 
 
 
Can you provide an complicated example.  I have tried select but have
not reached a satisfactory code level.
 
Marvin
 
 
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of rob@xxxxxxxxx
Sent: Friday, August 19, 2005 10:45 AM
To: RPG programming on the AS400 / iSeries
Subject: RE: read on a do loop
 
Me, I'm a Select man, myself.
 
Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com
 
 
 
 
 
jstevens@xxxxxxxxxxxxxx
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
08/19/2005 12:18 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
 
 
 
 
 
 
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.
 
 
--
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.
 
 
 
--
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.
 
 
--
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.
 
 
--
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.
 
 
 
--
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.
 
 
--
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 thread ...

Follow-Ups:
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.