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



There have been a few (rare) instances where I needed more than one return value from a subproc so I would have it modify parms.  BUT... in the interest of clarity, my prototype (and the program) will have the variables prefixed as "in" or "out".  Hopefully that reduces the confusion some.

Roger Harman
COMMON Certified Application Developer – ILE RPG on IBM i on Power
OCEAN User Group



----------------------------------------
Subject: Re: Not valid? Dow (p = %scan( '~' : SPdetl : PosLastDelim + 1))> 0;
From: jon.paris@xxxxxxxxxxxxxx
Date: Fri, 11 Sep 2015 12:02:38 -0400
To: rpg400-l@xxxxxxxxxxxx

That’s cheating John <grin> - I absolutely agree that it is “fighting” the language.

To me one of the most valuable points of using subprocs is that I should be able to rely on the fact that only the receiver changes and not any of the parms. If you can’t be sure of that then a subproc has the same problems as a subroutine i.e. you have to go look at the code before you can be sure what it does.

By the way - I was not commenting on Chris’ option (should have made that clear) but I never received the original post so I commented on what I saw.


On Sep 11, 2015, at 11:31 AM, John Yeung <gallium.arsenide@xxxxxxxxx> wrote:

On Fri, Sep 11, 2015 at 11:19 AM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:
The simple version of the code would be:

Dow %scan( '~' : SPdetl : PosLastDelim + 1)> 0;

But of course that would not give you access to the current value. If you need p then it has to be two separate operations - RPG cannot combine an assignment with a condition as you can do in some other languages.

You absolutely can in RPG: you just have to define a procedure that
both returns a value AND modifies its parameters. That was the whole
point of Chris's suggestion.

Personally, I think this is not a good use of procedures (the
avoidance of one line of idiomatic RPG code). Even if you use this
kind of loop all over the place (so that you achieve a net savings in
lines of code), to me this amounts to fighting the language.

John Y.
--
This is the RPG programming on the IBM i (AS/400 and 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.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

--
This is the RPG programming on the IBM i (AS/400 and 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.