# Dynamic Creation of Array

## Recommended Posts

Dear All,

I have to create a array with names such as:

Value1[2] ;

Value2[2]

Value3[2]

.

.

.

Value50[2]

where

Value1[0] = "1".

Value2[1] = "Boolean1".

The same thing follows for other 50 Value array's

I have attached a snippet of code for reference. Please review it and help me.

```for \$i = 1 to 50 STEP 1 ; Making 50 points

\$arrayname = "value" & \$i

\$arrayname[0] = \$i

\$str1 = ' " '
\$str2 = 'Boolean'
\$cstr = \$i
\$str3 = ' " '
\$namestr =  \$str1 & \$str2 & \$cstr & \$str3
\$arrayname[1] = \$namestr

Next```

The above code throws a error "Subscript used with non-Array variable."

Can anybody please suggest how to move on with it. How to create arrays Value1, Value2, ..... Value50

and this inturn takes values as

Value1[0]

Value1[1]

##### Share on other sites

If I understand correctly ou need 50 (fifty) two-dimensional arrays?

Easiest way I can think of is a 3-dimensional array.

1st dimension = rows

2nd dimension = columns

3rd dimension = arrays

```Global \$array[50][2][50]

\$array[2][0][5] = 50```

Sets the 3rd row, first column in the 6th array to value 50 (because all index values start with 0).

Fill all cells with "0":

```; Fill in a loop
For \$iArray = 0 To UBound(\$array,3)-1   ; Loop through all the arrays (dimension 3)
For \$iColumn = 0 To UBound(\$array,2)-1  ; Loop through all the columns (dimension 2)
For \$iRow = 0 To UBound(\$array,1)-1     ; Loop through all the rows (dimnsion 1)
\$array[\$iRow][\$iColumn][\$iArray] = 0
Next
Next
Next```
Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:

##### Share on other sites

anks,

Why not use a single 2D array like this - much easier to code and probably much easier to address eslewhere in your code!:

```#include <Array.au3>

Global \$aValue[51][2]

For \$i = 0 To 50

\$aValue[\$i][0] = \$i
\$aValue[\$i][1] = '"Boolean' & \$i & '"'

Next

_ArrayDisplay(\$aValue)```

As usual, ask if anything is unclear.

M23

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

## Create an account

Register a new account

×

• Wiki

• Back

• Git