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


  • Subject: Re: Prototypes and /COPYing
  • From: "Nelson C. Smith" <ncsmith@xxxxxxxx>
  • Date: Sat, 12 Feb 2000 19:09:27 -0500

Jim,

In your program, you can define only the portions of a /copy member that you
actually want the compiler to bring in.  Good form is to do this just before
the /copy and to undefine it just after:

/Define(ProcedureName1)
/Define(ProcedureName2)
/Define(ProcedureName3)

/copy Library,File,Member

/Undefine(ProcedureName1)
/Undefine(ProcedureName2)
/Undefine(ProcedureName3)

---------------------------------------------------

Then, in the copy member itself:

/If defined(ProcedureName1)
put the prototype for ProcedureName1 here...
/Endif

/If defined(ProcedureName2)
put the prototype for ProcedureName2 here...
/Endif

/If defined(ProcedureName3)
put the prototype for ProcedureName3 here...
/Endif

As the compiler reads the copy member, it will only bring in the ones you
have defined at the time of the /copy.  This is also quite useful for using
the same copy member to contain code (even different line types) that you
want to bring in at different points of your program.  I don't remember for
sure how far back this goes, but I think it was available at V3R7.

----- Original Message -----
From: "Jim Langston" <jlangston@conexfreight.com>
To: <RPG400-L@midrange.com>
Sent: Friday, February 11, 2000 10:55 AM
Subject: Re: Prototypes and /COPYing


> I am familiar with Define and Undefine from C, do those exist in
> RPG?  V3R7M0?  The only once I have seen, or noticed anyway,
> is the /COPY one.
>
> Regards,
>
> Jim Langston
>
> "Nelson C. Smith" wrote:
>
> > Jim,
> >
> > While I break up my procedures themselves into subject-related service
> > programs (like your math procedures), I have found it simpler to just
put
> > all the prototypes into a singe copy member (called Prototypes,
strangely
> > enough) and then just use the Define and Undefine compiler directives to
> > include only the prototypes desired in any one given program.   If you
use a
> > procedure in the program and forget to include the compiler directive
for
> > it, the compile listing will give you a 7030 error and you will see your
> > mistake quickly.
> >
> > Also, all those service programs are listed in the same binding
directory,
> > so there is only one thing you have to remember on the compile commands,
> > too.  I believe in keeping it as simple as possible.
>
> +---
> | This is the RPG/400 Mailing List!
> | To submit a new message, send your mail to RPG400-L@midrange.com.
> | To subscribe to this list send email to RPG400-L-SUB@midrange.com.
> | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
> | Questions should be directed to the list owner/operator:
david@midrange.com
> +---
>

+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


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.