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



Simple answer Rory.

Quick scenario.

I am reviewing a large program.
I encounter a piece of code that uses an array.
Need to see how the array is defined so I go the D specs.
Find that it is a compile time array and have to go to the other end of the universe (sorry - source) to find the definition.
Annoying and non-productive.

Admittedly since I use RDi all the time now it is not as ugly as having to wade through a 5,000 line source in SEU but you get the point. Even in RDI because of the 3 different locations I can't use the quick bookmark to get there and back.

If the data items are lengthy then I would rather they be in a database and loaded from that.

I confess that I would not personally use most of the D-spec versions shown because I would rather have each value on a separate line for clarity. Or at least if the data were of the form Code Letter + Long Name version (e.g. HHeader, FFooter, etc. I would actually "waste" a character so that I could code them as H-Header, F-Footer, etc. But that's just me and I'd have done the same thing with compile time data back in the day when I was forced to use it.


On 2013-08-08, at 12:13 PM, Rory Hewitt <rory.hewitt@xxxxxxxxx> wrote:

Trevor, Perhaps it's because he wants to put it in a copybook?

Jon, frankly, I'm not sure why you consider any of the methods discussed
earlier any 'better' than Michael's compile-time array - they *all* involve
hard-coding data into the program source, in one way or another. Michael's
method is certainly the easiest where one is talking about longer strings
of data (which *can* be specified in the D-specs, but it's ugly). Plus, at
least with a compile-time array, the data strings are all in one place, at
the bottom of the source, rather than dotted about the D-specs or (gasp!)
hidden in a separate copybook (OK, that was *my* idea :))

Rory


On Thu, Aug 8, 2013 at 5:31 AM, Briggs, Trevor (TBriggs2) <
TBriggs2@xxxxxxxxxxx> wrote:

The OP did say he wanted to do everything in D-specs (although he didn't
specify why).

Trevor Briggs
Analyst/Programmer
Lincare, Inc.
(727) 431-1246
TBriggs2@xxxxxxxxxxx
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Michael Schutte
Sent: Thursday, August 08, 2013 8:21 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: Is this the simplest way to define corresponding arrays in
D-specs


D Array DS 7 CTDATA PERRCD(1) DIM(4)
D SubSet1 1 OverLay(Array)
D SubSet2 6 Overlay(Array:*NEXT)


**
hheader
HHEADER
ffooter
FFOOTER



Or...

D Subset1 Ds 1 CTDATA PERRCD(4) DIM4)
D Subset2 Ds 6 CTDATA PERRCD(1) DIM4)


**
hHfF
**
header
HEADER
footer
FOOTER

Sometimes, things are just over thought...


On Wed, Aug 7, 2013 at 6:07 PM, Rory Hewitt <rory.hewitt@xxxxxxxxx>
wrote:

As a slight alternative, how about this:

D ds
D ARRAYS 28
inz('hheaderHHEADERffooterFFOOTER')
D ARRAY dim(4) Overlay(ARRAYS)
D ARRAYA 1 overlay(ARRAY)
D ARRAYB 6 overlay(ARRAY:*next)

Basically the same thing, but it intersperses the 1-char lookup values
with
the 6-char return values.

This also allows slightly easier-to-view formatting of the ARRAYS
string,
to show each ARRAY element on its own line:

D ARRAYS 28 inz('hheader+
D HHEADER+
D ffooter
D FFOOTER')

Rory


On Wed, Aug 7, 2013 at 1:14 PM, Booth Martin <booth@xxxxxxxxxxxx>
wrote:

Is this responsive to your request?

D ds
D ARRAYS 28
inz('hHfFheaderHEADERfooterFOOTER')
D ARRAYA 1 dim(4) overlay(ARRAYS)
D ARRAYB 6 dim(4) overlay(ARRAYS: *next)

The simplest way seemed to me to be using an ALT array, but that can
not
be done entirely inside the D-specs; leastways, I couldn't do it.


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




--
Rory Hewitt

http://www.linkedin.com/in/roryhewitt
--
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.


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


************************************************************************************************************************************************************************************************************
This message originates from Lincare Holdings Inc. It contains information
which may be confidential or privileged and is intended only for the
individual or entity named above.
It is prohibited for anyone else to disclose, copy, distribute or use the
contents of this message.
All personal messages express views solely of the sender, which are not to
be attributed to Lincare Holdings Inc., and may not be copied or
distributed without this disclaimer.
If you received this message in error, please notify us immediately at
MailAdmin@xxxxxxxxxxx or (800) 284-2006.

************************************************************************************************************************************************************************************************************

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




--
Rory Hewitt

http://www.linkedin.com/in/roryhewitt
--
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





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.