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



Yes, but you don't need O specs to use compile time data. If you use the initialized data structure, when does that get initialized/reclaimed? I guess if you use it in a procedure, that would be each time the procedure is called, and goes away when the procedure ends because it is in automatic storage. Maybe a slight benefit if the procedure isn't called, not so much if it is called multiple times. So I could see arguing against compile time data in a service program, but not necessarily in a program. After all, isn't:

dcl-s OkList Char(7) Dim(5) Ascend CTData;

If %Lookup(ErrorReturn.MessageId:OkList) > 0;

...

**CTData OkList
CPF3C51
CPF3C52
CPF3C53
CPF3C54
CPF3C55

A little more idiomatic for RPG (easier for an RPG programmer to understand at a glance)






-----Alan Campin <alan0307d@xxxxxxxxx> wrote: -----
To: "RPG programming on the IBM i (AS/400 and iSeries)" <rpg400-l@xxxxxxxxxxxx>
From: Alan Campin <alan0307d@xxxxxxxxx>
Date: 07/28/2017 09:38PM
Subject: Re: This is cool.


Are there even "O" specs anymore in 100% free and Main programs? I don't
think so and the problem with the old compile type arrays is that you are
talking static storage that gets initialized when the module starts and
stays there until the program or activation group ends.

On Fri, Jul 28, 2017 at 5:53 PM, Booth Martin <booth@xxxxxxxxxxxx> wrote:

If I am understanding it, this is essentially moving an array's data to
where the array is defined instead of following the "O" specs? Which is,
indeed, cool. Although I admit to also liking Jon/Sue's solution for
messages at the end of the article he linked earlier.



On 7/28/2017 6:38 PM, Nathan Andelin wrote:

The syntax may not be clear on first blush, but looks pretty slick once
you
understand it.


On Fri, Jul 28, 2017 at 12:03 PM, Alan Campin <alan0307d@xxxxxxxxx>
wrote:

dcl-ds *N;
*N Char(7) Inz('CPF3C51');
*N Char(7) Inz('CPF3C52');
*N Char(7) Inz('CPF3C53');
*N Char(7) Inz('CPF3C54');
*N Char(7) Inz('CPF3C55');
OkList Char(7) Dim(5) Pos(1) Ascend;
end-ds;


If %Lookup(ErrorReturn.MessageId:OkList) > 0;


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

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD


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.