Dynamic Arrays
A dynamic array does not have a fixed size. It can be enlarged or shrunk as needed by code during program execution. A dynamic array is declared by using empty parentheses in the Dim statement.
Before using the array, you must set its size using the ReDim statement.
When you use ReDim, any data in the array is normally lost. You can preserve existing array data (with some limitations) by including the Preserve keyword in the ReDim statement.
Hi Florian, that happens if
Hi Florian, that happens if the variable has not been properly Dimed, so if you have the following code:
Sub Main
Dim variable() as string
Redim variable1(14)
end sub
If you run the above the Redim will change to a dim as I mistyped the variable name. For the Redim to work the variable has to be dimensioned first.
To be (support Dynamic arrays) or not to be?
I always need to congratulate you for all benefits you give us with your inicitive! The IDEA Help has "IDEAScript does not support Dynamic arrays." researching by ARRAY. When I research by REDIM, They mentioned that is possible "The ReDim statement is used to size or resize a dynamic array that has already been declared using the DIM statement with empty parentheses". Are they lost their mind? Where can I see about REDIM "PRESERVE" over IDEAScript help or IDEA Help? Thanks at all!
You can use the preserve for
You can use the preserve for single dimension arrays (it won't work for multi-dimensional arrays ). The usual syntax is the following:
Dim sArray() as string
Redim sArray(5)
If you want to add an additional item to the array you could do this.
ReDim Preserve sArray(UBound(sArray) + 1)
This would add one item to the array.
As far as finding insturctions, I am pretty sure it is part of the IDEAScripting training but I don't think the online documentation mentions it.
Well there are probably a few
Well there are probably a few solutions.
If you want to use a multi-dimension array you can but you have to define it to the maximum number of elements at the very beginning, the preserve function only seems to work for 1 dimension arrays, so if you know that you will have a 2 dimensional array with 500 items you would define it at the start of the program:
Dim aMultiDim(500, 500) as string
If you need something larger you could have several single dimensional arrays to hold the variables, in that case you could use the redim and preserve functions.
So if your file has 3 fields you would set-up three arrays, one for each field:
Dim aField1() as string
Dim aField2() as string
Dim aField3() as string
Then you would then just redim them when you want to add some variables to them.
Hope this helps.
I often use the ReDim
I often use the ReDim statement in my code because i am used to it from other languages, funny thing the Idea-Editor sometimes changes my ReDim back to a normal Dim statement.