Jump to content
Sign in to follow this  
misioooo

ReDim 3d array

Recommended Posts

misioooo

I am doing ReDim of this 3D array (1st dimension) and it works... But cant get 2nd dim to redim.

Hello! I have something like this:

Dim $controls[1][1][1];1st dim holds group, 2nd dim holds no of monitors, 3rd dim holds IDs of all controls for monitor
...
Func _AddMonitor()
    $i = GUICtrlRead($tabGroups,1)
    $tab_index = GUICtrlRead($tabGroups)
    GUISwitch($gui_main,$i)
    $monitors[$tab_index] = $monitors[$tab_index]+1 ;in this array is number of monitors for each group (group no is array index)
    $mon = $monitors[$tab_index]
    ReDim $controls[UBound($controls)][UBound($controls,1)+1][UBound($controls,2)] ;I JUST WANT TO INCREASE 2nd DIMENSION BOUNDS BY 1
    MsgBox(0,"",$monitors[$tab_index])
    $controls[$groups-1][$monitors[$tab_index]][$MANUFACTURER] = GUICtrlCreateCombo("",40,160+20+$y_offset) ;ERROR HERE DUE TO SUBSCRIPT OR OUT OF BOUNDS
    $controls[$groups-1][$monitors[$tab_index]][$MODEL] = GUICtrlCreateCombo("",40+120,160+20+$y_offset)
EndFunc
Edited by misioooo

Share this post


Link to post
Share on other sites
Melba23

misioooo

You are using the wrong "Dimension" parameters for the UBound functions - at present you have "Default (1), 1, 2" when you need "1, 2, 3":

Global $aArray[1][1][1]

ConsoleWrite(UBound($aArray, 1) & " - " & UBound($aArray, 2) & " - " & UBound($aArray, 3) & @CRLF) ;Read 1 - 1 - 1

ReDim $aArray[UBound($aArray, 1) + 1][UBound($aArray, 2) + 2][UBound($aArray, 3) + 3]

ConsoleWrite(UBound($aArray, 1) & " - " & UBound($aArray, 2) & " - " & UBound($aArray, 3) & @CRLF) ; Should read 2 - 3 - 4
All clear? :)

M23

P.S. Please do not use Dim - it is much better to use Global/Local and be explicit about which scope you require. ;)


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______Open Open spoiler to see 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

 

Share this post


Link to post
Share on other sites
misioooo

Thank You Melba. I have no idea why i missed so obvious error... Probably i was counting from "0" ;P

It is working now.

Edited by misioooo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×