Jump to content

Multidimensional Array assign


Barkze
 Share

Go to solution Solved by Barkze,

Recommended Posts

I'm having trouble with this and I'm not sure why, I am reorganizing an array based on name and level alphabetically. Pardon all my msgboxes and arraydisplays, just me trying to figure it out.

It wont let me assign $newLowTemp = $aPlannedArray[$i], $i at the time it crashes is 6, the array itself has far more than 6, it ranges from 0 to 205 and can be seen with the above _ArrayDisplay($aPlannedArray, "")

Am I just not allowed to assign the first half of a multidimensional array? $aPlannedArray[$i] instead of $aPlannedArray[$i][somethingelse]

Func PlanAlph($min, $max)
   MsgBox($MB_SYSTEMMODAL, "",$min + 1&"  "&$max + 1)
   MsgBox($MB_SYSTEMMODAL, "",$aPlannedArray[6][$dtNAME])
   _ArrayDisplay($aPlannedArray, "")
   For $i = $min + 1 To $max
      For $j = $min To $i
         If StringCompare($aPlannedArray[$i][$dtNAME] & String($aPlannedArray[$i][$dtLVL]), $aPlannedArray[$j][$dtNAME] & String($aPlannedArray[$i][$dtLVL])) < 0 Then
               MsgBox($MB_SYSTEMMODAL, "",$i)
            _ArrayDisplay($aPlannedArray[6], "")
            Local $newLowTemp[4]
            $newLowTemp = $aPlannedArray[$i]
            $newLowTemp[$dtSLOT] = $aPlannedArray[$j][$dtSLOT]
            For $n = $aPlannedArray[$i] To $aPlannedArray[$j] + 1 step -1
               $aPlannedArray[$n][$dtSLOT] += 1
               $aPlannedArray[$n] = $aPlannedArray[$n - 1]
            Next
            $aPlannedArray[$j] = $newLowTemp
         EndIf
      Next
   Next
EndFunc

Here is where I defined it

Global $aGameArray[$dTOTALNODES + 1][$dNODEATTRIBUTES]
Global $aPlannedArray[$dTOTALNODES + 1][4]
Global $numNodes = 0
For $i = 0 To $dTOTALNODES
   $aPlannedArray[$i][$dtSLOT]      = $i
   $aPlannedArray[$i][$dtID]        = $i
   $aPlannedArray[$i][$dtNAME]      = "Empty"
   $aPlannedArray[$i][$dtLVL]       = False

   $aGameArray[$i][$dID]            = $i
   $aGameArray[$i][$dSLOT]          = $i
   $aGameArray[$i][$dTYPE]          = False
   $aGameArray[$i][$dNAME]          = "Empty"
   $aGameArray[$i][$dAFFIX]         = False
   $aGameArray[$i][$dTAGS]          = False
   $aGameArray[$i][$dILEVEL]        = False
   $aGameArray[$i][$dHSTAT]         = False
   $aGameArray[$i][$dDESCRIPTION]   = False
   $aGameArray[$i][$dTARGSLOT]      = False
Next

Thanks for any help sorry if I am missing something basic

 

I should probably include the error message, 

$newLowTemp = $aPlannedArray[$i]

$newLowTemp = ^ ERROR

Array variable has incorrect number of subscripts or subscript dimension range exceeded

I know this usually means it either isn't an array or isn't large enough but it is an array and it is large enough..

Edited by Barkze
Link to comment
Share on other sites

  • Solution

ell I got it working, not sure why you can't assign it that way but I had to do it all one at a time.

It wasn't the $i that it didn't like it was the fact that I was assigning a [4] array to another [4] array... or something?

Local $newLowTemp[4] = [ $aPlannedArray[$j][$dtSLOT], $aPlannedArray[$i][$dtID], $aPlannedArray[$i][$dtNAME], $aPlannedArray[$i][$dtLVL] ]
Edited by Barkze
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...