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



True, it appears better. But, then, there is another "standard" where
conditioned code should not extend over pages. I have seen vendor
code where I work that violates that, Six levels deep over the
equivalent of ten printed pages. One program was so ugly that when I
was applying vendor supplied code changes, it failed to compile. I
contacted the vendor and got issue resolved, but I also asked if
anybody considered rewriting the thing. Answer I got was that nobody
wanted to risk it.

Pretty close to your comment about 6000 lines later. I pity anybody
who has to work on that thing.

John McKee

On Wed, Jul 24, 2013 at 6:05 AM, <rob@xxxxxxxxx> wrote:
I find LEAVE much better than
dowhile &moon='BLUE'
ACTION
MONMSG CPF0000 CHGVAR(&moon) value('PINK')
If &moon<>'BLUE'
...
...
...
6,000 lines of code later
...
...
...
endif
/* someone inserts line here, oopsie */
enddo


Rob Berendt
--
IBM Certified System Administrator - IBM i 6.1
Group Dekko
Dept 1600
Mail to: 2505 Dekko Drive
Garrett, IN 46738
Ship to: Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com





From: John McKee <jmmckee@xxxxxxxxxxxxxx>
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>,
Date: 07/23/2013 07:18 PM
Subject: Re: Leave outside of DO group???
Sent by: midrange-l-bounces@xxxxxxxxxxxx



I'm confused. I had a teacher, years ago, who was adamant - one way
in and one way out. How is LEAVE considered structured? Violates the
teacher's rule, since there are now multiple ways that a loop could be
exited. His preferred method was to test at the top.

I don't mean to start an argument. Just trying to understand how
multiple exit paths is considered structured.

I have had to debug programs with multiple exit paths. Process was
more involved.

John McKee

On Tue, Jul 23, 2013 at 4:58 PM, Booth Martin <booth@xxxxxxxxxxxx> wrote:
Could he do a NOT/Else with the NOt MonMsg... else leave?

On 7/23/2013 4:51 PM, Dan Kimmel wrote:
Still, I like the concept. It'd be a way to get out of a block of code
without a GOTO. The Do .. EndDo marks the block of code. Are there other
ways to jump out of a block in CL structured op codes?

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of CRPence
Sent: Tuesday, July 23, 2013 4:13 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: Leave outside of DO group???

On 23 Jul 2013 13:48, DrFranken wrote:
I wrote this snippet of code:

Do
ChkObj QSTRUPEX1 *Pgm /* Check for exit program. */
MonMsg CPF9800 EXEC(Leave) /* Not there or Not Authorized */
Call QSTRUPEX1 /* Run it. */
MonMsg CPF0000
EndDo


At the LEAVE Statement I get this error:
* CPD0883 30 LEAVE command found outside of DO group.

But it sure appears to be inside a Do group to me!

Am I in error if I 'complain' to the fine folks in the land of IBM
i?

AFaIK the error is correct, and ...

The implied command label [CMDLBL(*CURRENT)] is, as worded in the
message CPD089A, is not "associated with an active DOWHILE, DOUNTIL,
or
DOFOR group". The additional\second-level text of that CPD0883 [e.g.
as
presented by F1=Help] should further state that "The LEAVE command
must
be inside a DOWHILE, DOUNTIL, or DOFOR command group."

FWiW: Coding the MONMSG CPF0000 as shown is not a good practice;
just
as well remove the prior CHKOBJ and MONMSG to get effectively the same
results with less work.

--
Regards, Chuck
--

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.