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



Scott,

That is entirely possible. This is the first time I have used it.

After filling 'Dlr', I wanted to remove any 'empty' elements so that when it
was sorted using 'sorta' there would not be a bunch of empty elements at the
start. I made 'Dlr1' varying because when it was not, and 'Dlr' was varying,
executing:
%SubArr(Dlr:1:Idx) = %SubArr(Dlr1:1:Idx);
caused each sub-field in 'Dlr' to be 'mis-positioned' by 2 characters. Bob
Cozzi indicated that this was (probably) caused by the 'hidden' index to the
varying data structure. Making them both varying was an attempt to avoid
that problem. This was described more fully in a post yesterday, with code
and results. I can include that in another post if that would help. 

Thanks for your reply.
Going to lunch now.

Tim Kredlo

  
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Scott Klement
Sent: Thursday, February 09, 2006 12:25 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: RNX0115 message / %SubArr


Tim,

Please explain why you've coded the word "VARYING".  It doesn't make sense 
to me.  I think you're misinterpreting what VARYING does.

---
Scott Klement  http://www.scottklement.com


On Thu, 9 Feb 2006, Tim Kredlo wrote:

> O Wise (and Generous With Your Help) List Members,
>
>
>
> Help again!!
>
>
>
> I have declared two pointer based data structures Dlr & Dlr1) as 100A,
each
> DIMmed to 2500 initial elements and as VARYING.
>
> I created a user space for each with an initial size of 1,000,000 and
> retrieved their pointers, which are used to base Dlr & Dlr1.
>
>
>
> Declarations:
>
> D DlrDs           Ds                  Qualified
>
> D  Idx                                Like(A_10)
>
> D  Code                               Like(A_1)
>
> D  Type                               Like(A_1)
>
> D  Grp#                               Like(A_6)
>
> D  Dlr#                               Like(A_6)
>
> D  Name                               Like(A_40)
>
> D  Stat                               Like(A_10)
>
> D  City                               Like(A_20)
>
>
>
> D                 Ds                  Based(DlrBase)
>
> D  Dlr                         100A   Varying
>
> D                                     Dim(2500)
>
> D                                     Ascend
>
> D  DlrIdx                             Like(DlrDs.Idx)
>
> D                                     Overlay(Dlr : 1)
>
> D  DlrCode                            Like(DlrDs.Code)
>
> D                                     Overlay(Dlr : *Next)
>
> D  DlrType                            Like(DlrDs.Type)
>
> D                                     Overlay(Dlr : *Next)
>
> D  DlrGrp#                            Like(DlrDs.Grp#)
>
> D                                     Overlay(Dlr : *Next)
>
> D  DlrDlr#                            Like(DlrDs.Dlr#)
>
> D                                     Overlay(Dlr : *Next)
>
> D  DlrName                            Like(DlrDs.Name)
>
> D                                     Overlay(Dlr : *Next)
>
> D  DlrCity                            Like(DlrDs.City)
>
> D                                     Overlay(Dlr : *Next)
>
> D  DlrStat                            Like(DlrDs.Stat)
>
> D                                     Overlay(Dlr : *Next)
>
>
>
> Dlr1 is declared identically, except for the sub-field names and basing
> pointer.
>
> The sum of the length of the sub-fields is 94, but I set Dlr and Dlr1 to
100
> to hold the 'hidden' integer Bob Cozzi indicated was inserted at the
> beginning of 'varying' arrays and/or data structures.
>
>
>
> I ran the program in debug (StrDbg).
>
> I filled 1821 elements of Dlr1 from files.
>
> At the end of the fill procedure, I tested Dlr1(1821) and it contained
> expected values.
>
> Dlr1(1822) was empty as expected.
>
>
>
> Because I had previously received the RNX0115 message, I evalled
Dlr1(2501)
> and it was displayed as empty.
>
> I had expected an error since it had been DIMmed to 2500 elements, which I
> had thought would be the limiting number.
>
> I then continued to test and found that eval would display empty values up
> to and including Dlr1(9834), but returned the following error when I
evalled
> Dlr1(9835): Error on operand value.
>
>
>
> I evalled Idx and it was correctly set at 1821.
>
> (9834 is the integer result of 1,000,000 / 102)
>
> (102 is the declared 100 plus the 2 byte integer.)
>
>
>
> The next statement: %SubArr( Dlr : 1 : Idx ) = %SubArr ( Dlr1 : 1 : Idx );
>
> Resulted in the following error:
>
>
>
> Message ID . . . . . . :   RNX0115       Severity . . . . . . . :   50
>
>
> Message type . . . . . :   Diagnostic
>
>
> Date sent  . . . . . . :   02/09/06      Time sent  . . . . . . :
10:09:36
>
>
>
>
>
> Message . . . . :   Length of varying length variable is out of range.
>
>
> Cause . . . . . :   The length of a varying length character or DBCS
> variable
>
>  is less than 0 or greater than its declared maximum length in RPG
> procedure
>
>  INITIALIZE in program EXPRDPGM/PICKCUSTN.
>
>
>
> I am going to use the method(s) Charles Wilt (Thanks again, Charles) had
> suggested to accomplish my sort, but would really like to understand what
is
> going on here.
>
>
>
> Why does Dlr1 now have 9834 elements?
>
> Does DIMming an array not limit the maximum number of elements it can
have?
>
> If not, why not DIM all varying arrays to '2'?
>
> How can one 'ever' avoid the RNX0115 error if the varying arrays are going
> to automatically use all allocated memory?
>
>
>
> I am at V5R3, PTF'd as:
>
> SF99530                5207  Installed
>
> SF99529                  65  Installed
>
> SF99503                   7  Installed
>
> SF99298                  15  Installed
>
> SF99269                   7  Installed
>
> SF99185                   9  Installed
>
> SF99139                   2  Installed
>
> SF99099                   7  Installed
>
>
>
> Thanks in advance for any explanations or directions to relevant
> information.
>
>
>
> Tim Kredlo
>
> -- 
> This is the RPG programming on the AS400 / 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.