>If I understand your problem, you can use INSERT exactly as you would
with dynamic arrays:
>
>   INS newValue1 BEFORE FLD(1)<1,VMC>
>   INS newValue2 BEFORE FLD(2)<1,VMC>
>   INS newValue3 BEFORE FLD(3)<1,VMC>
>   etc.

Heck, it is *possible* to INS *attributes*, not just values or
subvalues:
   INS newValue1 BEFORE ARR(1)<AMC>
   INS newValue2 BEFORE ARR(2)<AMC>
   INS newValue3 BEFORE ARR(3)<AMC>
   etc.
(Guess what happens if you MATWRITE this.)

---------------------

>"how about just adding the new elements to the end"
>
>cause the program will go ka-boom as soon as last.pos exceeds inmat(
arr1 ) ?
>we'll need to insure it doesn't blow past this threshold...

You can dynamically "redimension" (see footnote) as needed (except for
arrays defined in COMMON). For example:

During pgm init:
   $OPTIONS -STATIC.DIM   (needed for UV's Pick-Flavor)
   ARR.MAX = 1000
   DIM ARR1( ARR.MAX ), ARR2( ARR.MAX )
Somewhere in body of program:
   LAST.POS+= 1   
   IF LAST.POS > ARR.MAX THEN
      ARR.MAX+= 1000 (or ARR.MAX = POS  or ARR.MAX = POS+1000 or ...)
      DIM ARR1( ARR.MAX ), ARR2( ARR.MAX )
   END
   ARR1(LAST.POS) = new.element1
   ARR2(LAST.POS) = new.element2

I like the idea of adding to the end of the array but keeping a dynamic
array containing an ordered list of array pointers. 
    INS LAST.POS BEFORE POINTER.LIST<N>
Then at some point you can reorder ARR1 & ARR2 themselves if you need
to.  That is, do it once (say before writing or otherwise using) instead
of every time a new element is "inserted".

But we don't really know enough about what you're trying to accomplish
to say what's appropriate.

-----------------------
Footnote: 
"Redimension" is the usually used word, but it's meaning is not what you
learned in Linear Algebra.  We get 1-, or 2-dimensional arrays, period.
(Don't know why.  I have often wanted a 3- or more-dimensional array.)
The size of one of those dimensions is what is dynamically
reconfigurable.  
Actually, you can redimension, using mathematical definition of
"dimension":
    $OPTIONS -STATIC.DIM
    DIM ARR( 100 )        ;*  1-dimensional array
    DIM ARR( 2,50 )       ;*  2-dimensional array
but it doesn't quite do to your data what you might expect.

3D arrays are illegal, won't compile:
   DIM ARR( 2, 5, 10 )   
-----------------------

cds
-------
u2-users mailing list
[EMAIL PROTECTED]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to