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