|
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.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.