|
It's interesting the way this thread has morphed....
I never understood the appeal of a DOU loop for reading a file versus a
DOW loop.
Read File
Dow Not EOF
Process Stuff
Read File
Enddo
has always seemed much cleaner than
Dou EOF
Read File
If Not EOF
Iter
Endif
Process Stuff
Enddo
Why do you want to clutter up a simple Do loop with an explicit test that
gets done again implicitly when the Do loop does it's test? I have had
some argue that there was a measurable performance advantage to a single
Read statement versus 2 separate Read statements, but we're not writing
stuff for 32KB S/34's now.
Steve
Steven Morrison
Fidelity Express
"rick baird" <rick.baird@xxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
01/09/2009 02:12 PM
Please respond to
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
To
"RPG programming on the IBM i / System i" <rpg400-l@xxxxxxxxxxxx>
cc
Subject
Re: Good places to use "The Cycle" in today's RPG was->Re: FW:Niftiest
thing(s) you have done in RPG ILE or /FREE
I never use endless loops, except for the example of screen processing
I posted earlier. In that case, and only in that case, it just makes
the code 'cleaner' imo.
the loop ends when the user asks it to (one of three different ways:
F3, F12 or successful data entry and update.) The rest of the time,
there are several points where the user asks the program to do
something and it returns to the screen (F4 prompt, enter to update,
but errors were found).
yes, they kinda look like gotos, but the structure is still there.
Iterate the loop or leave it, based on 5 different and unrelated
conditions.
It's better than coding the loop like this:
dow *inkd or (not errors and not *inkc and not *inkl)
Just thinking about how to write the above gave me a sharp pain just
behind my eyeball. no thanks.
On Fri, Jan 9, 2009 at 2:27 PM, Bryce Martin <BMartin@xxxxxxxxxxxx> wrote:
I still agree with the sentiment that writing an endless loop isn't asto
maintainable. You are now doing 2 logic checks instead of 1. You have
do the check of whether 1=1 and then check if you are at the end offile.
I know that you will never see the differenece when running a programbut
think of all the cpu cycles that are being wasted in the course of timeby
code written this way. If you have a popular ERP system that is madeup
of thousands of programs and everytime a file is read through you haveall
these extra logic steps you can quickly see how many cpu cycles will be
wasted by your package if you have thousands of customers. Everyday,
day, this stuff goes on. The numbers quickly become larger than what wereally
can count on our fingers and toes.
Maybe I'm too much of a purist, but I really don't like the current
programming mentality that, just because the machines are bigger now the
code doesn't need to be written as efficiently because no one will
notice. Its that kind of attitude that gives us things like Windowsuse of the individual or entity to which it is addressed and may contain
Vista. Its pervasive, like it or not, and it eventually does show up
somewhere.
Thanks
Bryce Martin
Programmer/Analyst I
Ext. 4777
"Wintermute, Sharon" <Sharon.Wintermute@xxxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
01/09/2009 02:07 PM
Please respond to
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
To
"RPG programming on the IBM i / System i" <rpg400-l@xxxxxxxxxxxx>
cc
Subject
RE: Good places to use "The Cycle" in today's RPG was->Re:
FW:Niftiest thing(s) you have done in RPG ILE or /FREE
Just have to chime in here.
One of my professors "dinged" us for primary reads. His reason? If you
have a do loop check it then. His style was
Dow 1= 1
Read
If %EOf
Leave
Endif
Process
Enddo
I still remember the ruler on my hands.
Sharon Wintermute
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Christen, Duane J.
Sent: Friday, January 09, 2009 12:59 PM
To: 'RPG programming on the IBM i / System i'
Subject: RE: Good places to use "The Cycle" in today's RPG was->Re:
FW:Niftiest thing(s) you have done in RPG ILE or /FREE
Your both wrong. :-)
Read file;
DoW Not %Eof(file);
// process data
Read file;
EndDo;
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jeff Crosby
Sent: Friday, January 09, 2009 12:39 PM
To: 'RPG programming on the IBM i / System i'
Subject: RE: Good places to use "The Cycle" in today's RPG
was->Re: FW: Niftiest thing(s) you have done in RPG ILE or /FREE
I do it the way you don't.
dow '1';
read file;
if eof;
leave;
endif;
processdata;
enddo;
That's MY opinion and I'm sticking to it. <g>
--
Jeff Crosby
UniPro FoodService/Dilgard
P.O. Box 13369
Ft. Wayne, IN 46868-3369
260-422-7531
www.dilgardfoods.com
The opinions expressed are my own and not necessarily the
opinion of my company. Unless I say so.
-----Original Message-----On
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
Behalf Of GUY_HENZA@xxxxxxxxxxxxxxwas->Re: FW:
Sent: Friday, January 09, 2009 1:07 PM
To: RPG programming on the IBM i / System i
Subject: Re: Good places to use "The Cycle" in today's RPG
Niftiest thing(s) you have done in RPG ILE or /FREEto
Wow, just back from lunch and so many posts. I consider ITER and
LEAVE
be backwards from the way I think. I condition on what Iwant to do
noton
what I don't want to do.<jrperkinsjr@xxxxxxxxx>"James
dou eof;
read file;
if not eof;
processdata;
endif;
enddo;
This makes more sense to me than;
dou eof;
read file;
if eof;
leave;
endif;
processdata;
enddo;
That's my opinion and I'm sticking with it.
Regards,
Guy
Inactive hide details for "James Perkins"
Perkins" <jrperkinsjr@xxxxxxxxx>programming on
"James Perkins" To "RPG
the
<jrperkinsjr@xxxxxxxxx> IBM i /System i"
Sent by:<rpg400-l@xxxxxxxxxxxx>
rpg400-l-bounces@xxxxxxxxxxxx ccGood places to use
Subject Re:
01/09/2009 11:36 AM "TheCycle" in today's
RPG was->Re: FW:Niftiest
+---------------------------+thing(s) you have done
in
| Please respond to | RPG ILE or /FREEwith
| RPG programming on the |
| IBM i / System i |
| <rpg400-l@xxxxxxxxxxxx> |
+---------------------------+
If you don't use ITER or LEAVE do you just have a giant IF
statement,
loads of nested IF's? I really can't see how you couldright a program
thatcan't think if
uses logic any other way, but then again just because I
doesn't mean there is not a way.--------------------------------------------------------------
James R. Perkins
--
------------
-----e-mail may be
The information contained in and transmitted with this
privileged, proprietary, confidential and protected fromdisclosure. No
privilege is hereby intended to be waived. This e-mailis intended only
for the person to whom it is addressed. If you are notthe intended
recipient/addressee, any use of the e-mail and/or its contents,including,
but not limited to, dissemination, distribution orcopying is strictly
prohibited and may be unlawful, and you must not takeany action in
reliance on it. If you receive this e-mail in error,please immediately
notify the sender and delete the original message andany copies of it
from your computer system. We deny any liability fordamages resulting
from the use of this e-mail by the unintended recipient,including the
recipient in error.
--
This is the RPG programming on the IBM i / System i
(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 email has been scanned by the MessageLabs Email Security System.
For more information please visit
http://www.messagelabs.com/email
______________________________________________________________________
NOTICE: This electronic mail transmission may contain confidential
information and is intended only for the person(s) named. Any use,
copying, or disclosure by any other person is strictly prohibited. If
you have received this transmission in error, please notify the sender
via e-mail.
--
This is the RPG programming on the IBM i / System i (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 IBM i / System i (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 message (including any attachments) is intended only for the
information that is non-public, proprietary, privileged, confidential, and
exempt from disclosure under applicable law. If you are not the intended
recipient, you are hereby notified that any use, dissemination,
distribution, or copying of this communication is strictly prohibited. If
you have received this communication in error, please notify us and
destroy this message immediately. ---
--list
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
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 IBM i / System i (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.
Confidentiality Statement: This electronic mail transmission is
confidential, may be privileged and should be read or retained only by the
intended recipient. If you have received this transmission in error,
please notify the sender immediately and delete it from your system.
--
This is the RPG programming on the IBM i / System i (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.