With such a limitation I do not think an array would work in this instance.  
So I am back to square one :) Oh well it was a nice thought.


On Tue, 29 Mar 2005 16:29:13 +0200, Igor.Beslic wrote
> It's true that this is good way way for saving necessary mem space 
> but still  this array is limited to 20000 elements!! For exapmple 
> replace line C     1             DO        50            index with this
>  C     1             DO        20001         index
> 
> and you'll get a array out of bounds error at line
> C                   MOVE      index         array(index)
> 
> Best regards,
> Igor Be¹liæ, dipl. ing. raè. 
> VOLKSBANK d.d.
> OJ Informatika
> Zelinska 2, 10000 Zagreb
> tel: +385 1 6326422
> 
> MWalter@xxxxxxxxxxxxxxx 
> Sent by: rpg400-l-bounces@xxxxxxxxxxxx
> 29.03.2005 16:15
> Please respond to
> RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
> 
> To
> RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
> cc
> 
> Subject
> Re: Arrays
> 
> Yes, you'll have to base you're array on a pointer. Then increase the
> allocation size. Take a look at the ALLOC, REALLOC, and DEALLOC op codes.
> Here's a quick example:
> 
>   * array definitions
>  Darray            S             10    DIM(20000) BASED(PTR)
>  Dindex            s              7  0
>   * memory allocation data items
>  Dptr              S               *
>  Dnbr_of_elems     S              5  0 INZ(10)
>  Dmem_size         S              7  0 INZ
>  Dx                S             10i 0
>   * allocate the initial memory heap (initial # of elements * the 
> size of the array) C                   EVAL      mem_size = 
> %size(array) * nbr_of_elems C                   ALLOC     mem_size   
>    ptr C                   EVAL      x = %elem(array)  * loop to 
> test C     1             DO        50            index  * does the 
> index exceed the current # of array elements? C                   IF 
>        index > nbr_of_elems  * recalculate the memory heap size by 
> adding 10 to the number of elements  * and multiplying the size of 
> the array by the new number of elements. C                   EVAL    
>   nbr_of_elems = nbr_of_elems + 10 C                   EVAL      
> mem_size = %size(array) * nbr_of_elems * reallocate the memory heap 
> and increase the size C                   REALLOC   mem_size     
>  ptr C                   ENDIF * move data for test C                
>    MOVE      index         array(index) * C                   ENDDO 
> * deallocate the memory utilized C                   DEALLOC         
>         ptr C                   EVAL      *inlr = *on 
> ****************** End of data *******************************************
> Thanks,
> 
> Mark
> 
> Mark D. Walter
> Senior Programmer/Analyst
> CCX, Inc.
> mwalter@xxxxxxxxxx
> http://www.ccxinc.com
> 
>              "Douglas W. 
>              Palme" 
>              <dpalme@blackcats                                       
>    To
> 
>              olutions.com>             "RPG Group" <rpg400-
> l@xxxxxxxxxxxx>
> 
>              Sent by:                                                
>    cc
> 
>              rpg400-l-bounces@ 
>              midrange.com                                          
> Subject
> 
>                                        Arrays
> 
>              03/29/2005 09:08 
>              AM
> 
>              Please respond to 
>               RPG programming 
>               on the AS400 / 
>                   iSeries 
>              <rpg400-l@midrang 
>                   e.com>
> 
> In using VB and C I have the ability to dynamically increase an array's
> size
> from say 50 to 100 without losing the existing data, is this 
> possible in RPG?
> 
> >From all that I have been able to read on arrays in RPG so far I don't 
> see
> 
> it as possible, but I'm hoping there is something available that the 
> books and PDF's don't cover.
> 
> --
> 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.
> 
> -- 
> 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.
> 
> -- 
> 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.


--
Open WebMail Project (http://openwebmail.org)


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.