Eric,
From the perspective of one who has to maintain as well as develop, I must say that I've become a big fan of "explicit" code over "efficient" code. I suspect your technique has its place, but at a glance, my humble brain can resolve a stack of "if this or if that", a lot faster than it can figure out what's going on in the %scan.

I find myself writing code that I puzzle over later, and have to smack myself for having been so clever.

(my t'pence)

-Michael

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of DeLong, Eric
Sent: Wednesday, November 02, 2011 11:54 AM
To: RPG programming on the IBM i / System i
Subject: RE: Nested IF, OR and AND in /free

While not EXACTLY an "in list" function, for the example below, there is a hack...

If ( %scan(chk1 : '1|7|8|9') > 0 ) and chk6 <> ' '

Caveat: I used a pipe symbol to separate my listed values, so that the technique works for fields of different lengths. If chk1 were two bytes long, then each of the elements in the list should be two bytes, separated by some character that is never expected to be in the source field. This helps to ensure that scan will only match on string patterns between the separation character.

-Eric DeLong

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Alan Campin
Sent: Tuesday, October 25, 2011 4:37 PM
To: RPG programming on the IBM i / System i
Subject: Re: Nested IF, OR and AND in /free

You can't use a list on RPG Free

/free
if (chk1 = '7' or
chk1 = '8' or
chk1 = '9' or
chk1 = '1') and
chk6 <> ' ';
/end-free

On Tue, Oct 25, 2011 at 2:53 PM, <Nick_Radich@xxxxxxxxxxxxxx> wrote:

Hello everyone,

We are at V5R4.

I am trying to get more into using /free, after 30 years of programming.

I have included the following snippet of code that will not compile. I
get error RNF7421 on the compile listing.

I have also tried entering this using WDSC.

Can I do this code at V5R4?

/free
if chk1 = ('7' or '8' or '9')
or chk1 = '1'
and chk6 <> ' ';
/end-free


Any help or pointers will be greatly appreciated.



Thanx,

Nick



Nick Radich
Sr. Programmer/Analyst
EPC Molding, Inc.
Direct (320) 679-6683
Toll free (800) 388-2155 ext. 6683
Fax (320) 679-4516
nick_radich@xxxxxxxxxxxxxx
--


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.