|
See my article on just this topic at this URL: This one uses dynamic memory allocation: http://www.mcpressonline.com/mc?1@xxxxxxxxxxxxxxxx@.6aea9815 This one illustrates how to do it with a user space: http://www.mcpressonline.com/mc?1@xxxxxxxxxxxxxxxx@.6ae57f75 -Bob Cozzi www.RPGxTools.com RPG xTools - Enjoy programming again. -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jim Wiant Sent: Wednesday, January 11, 2006 3:58 PM To: RPG programming on the AS400 / iSeries Subject: RE: Multi-field dynamic array You can use a user space to simulate an infinite array. Unfortunately, I don't have example code for this. But with a little pointer management you can use the UserSpace to store as much data as you want. Sorting is a little tricky, but it can be done as well. JPW The bitterness of poor quality remains long after low pricing is forgotten! Cautillo, Leon M. -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Simon Coulter Sent: Thursday, 12 January 2006 11:02 To: RPG programming on the AS400 / iSeries Subject: Re: Multi-field dynamic array On 12/01/2006, at 8:19 AM, Grizzly M wrote: > I want to be able to increase the size of the array on an as needed > basis. I'm pretty sure this can be done with pointers, but I can't > figure out how. Can anyone offer some suggestions? o Base the array on a pointer o Set the array dimension to the maximum possible o Use %ALLOC or ALLOC to allocate the initial amount of storage (size of element * expected elements) o Count how many entries you use o When you approach the current maximum number of entries use %REALLOC or REALLOC to increase the array size (current size + (size of element * extra elements) o Minimise the number of %REALLOC calls Don't use RPG functions that cannot be restricted to the current maximum size of the array. Regards, Simon Coulter. -------------------------------------------------------------------- FlyByNight Software AS/400 Technical Specialists http://www.flybynight.com.au/ Phone: +61 3 9419 0175 Mobile: +61 0411 091 400 /"\ Fax: +61 3 9419 0175 \ / X ASCII Ribbon campaign against HTML E-Mail / \ --------------------------------------------------------------------
As an Amazon Associate we earn from qualifying purchases.
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.