Malkey Posted May 9, 2008 Share Posted May 9, 2008 (edited) My Array ReferenceI noticed the UBound example for help file did not work. And I keep forgetting which parameter number to use for rows, columns, and dimension.StringSplit( ) function - A recent post on General Help and Support inspired this one.Dimensioning arrays - I was having trouble dimensioning a three dimensional array, thinking I was going to use it. I found an example on the AutoIT forums and made other examples to see how it was done. I made several arrays with 3 dimensions, a 4 dimensional array, a two and single dimension for completeness, tidy it all up and posted.expandcollapse popup; Array examples ; == Working UBound example for help file v3.2.11.10 (beta)& v3.2.10.0 === ; 2 dimension array Dim $myArray[10][20] ;element 0,0 to 9,19 $rows = UBound($myArray) ; Also can use UBound($myArray, 1) $cols = UBound($myArray, 2) $dims = UBound($myArray, 0) $output = "The " & $dims & "-dimensional array has, " & _ $rows & " rows, " & $cols & " columns" & @CRLF & @CRLF ;Enter Data and Display $myArray's contents For $rows = 0 To UBound($myArray, 1) - 1 For $cols = 0 To UBound($myArray, 2) - 1 ;Put data into array one at a time @ each pass in the loops $myArray[$rows][$cols] = "[" & $rows & "]" & "[" & $cols & "]" ; Store contents of array for display in variable "$output" $output &= $myArray[$rows][$cols] & " " Next $output &= @CRLF ; New row Next MsgBox(0, "Array Contents, UBound example", $output) ; =========> End of UBound example ;=== Split string example ============ Local $contents, $arraySp $string = "a|b|c|d" $arraySp = StringSplit($string, "|") For $count = 0 To $arraySp[0] $contents &= "$arraSp[" & $count & "] = " & $arraySp[$count] & @CRLF & @CRLF Next MsgBox(0, "Split string example", $contents) ;========> End of Split string example ;====== Fill array examples ========== ; Single dimensional array Local $array1Dim[4] = [ 0, '[1]', "[" & 2 & "]", '[3]' ] ; 2 dimensional array Local $array3x4[3][4] = [ [ '[0][0]', '[0][1]', '[0][2]', StringFormat("[%d][%d]", 0, 3) ], _ [ '[1][0]', '[1][1]', '[1][2]', '[1][3]' ], _ [ '[2][0]', '[2][1]', '[2][2]', '[2][3]' ] ] ; 3 dimensional array Local $array2x3x4[2][3][4] = [ [ [ '[0][0][0]', '[0][0][1]', '[0][0][2]', '[0][0][3]' ], _ [ '[0][1][0]', '[0][1][1]', '[0][1][2]', '[0][1][3]' ], _ [ '[0][2][0]', '[0][2][1]', '[0][2][2]', '[0][2][3]' ] ], _ [ [ '[1][0][0]', '[1][0][1]', '[1][0][2]', '[0][0][3]' ], _ [ '[1][1][0]', '[1][1][1]', '[1][1][2]', '[0][1][3]' ], _ [ '[1][2][0]', '[1][2][1]', '[1][2][2]', '[0][2][3]' ] ] ] Local $array2x2x2[2][2][2] = [ [ ['[0][0][0]', '[0][0][1]' ], [ '[0][1][0]', '[0][1][1]'] ], _ [ ['[1][0][0]', '[1][0][1]' ], [ '[1][1][0]', '[1][1][1]' ] ] ] Local $array3x2x2[3][2][2] = [ [ [ '[0][0][0]', '[0][0][1]' ], [ '[0][1][0]', '[0][1][1]' ] ], _ [ [ '[1][0][0]', '[1][0][1]' ], [ '[1][1][0]', '[1][1][1]' ] ], _ [ [ '[2][0][0]', '[2][0][1]' ], [ '[2][1][0]', '[2][1][1]' ] ] ] Local $array2x3x3[2][3][3] = [ [ [ '[0][0][0]', '[0][0][1]', '[0][0][2]' ], _ [ '[0][1][0]', '[0][1][1]', '[0][1][2]' ], _ [ '[0][2][0]', '[0][2][1]', '[0][2][2]' ] ], _ [ [ '[1][0][0]', '[1][0][1]', '[1][0][2]' ], _ [ '[1][1][0]', '[1][1][1]', '[1][1][2]' ], _ [ '[1][2][0]', '[1][2][1]', '[1][2][2]' ] ] ] Local $array2x4x4[2][4][4] = [ [ [ '[0][0][0]', '[0][0][1]', '[0][0][2]', '[0][0][3]' ], _ [ '[0][1][0]', '[0][1][1]', '[0][1][2]', '[0][1][3]' ], _ [ '[0][2][0]', '[0][2][1]', '[0][2][2]', '[0][2][3]' ], _ [ '[0][3][0]', '[0][3][1]', '[0][3][2]', '[0][3][3]' ] ], _ [ [ '[1][0][0]', '[1][0][1]', '[1][0][2]', '[1][0][3]' ], _ [ '[1][1][0]', '[1][1][1]', '[1][1][2]', '[1][1][3]' ], _ [ '[1][2][0]', '[1][2][1]', '[1][2][2]', '[1][2][3]' ], _ [ '[1][3][0]', '[1][3][1]', '[1][3][2]', '[1][3][3]' ] ] ] ; 4 dimensional array Local $array2x2x2x2[2][2][2][2] = [[[['[0][0][0][0]','[0][0][0][1]'],['[0][0][1][0]','[0][0][1][1]']], _ [['[0][1][0][0]','[0][1][0][1]'],['[0][1][1][0]','[0][1][1][1]']]], _ [[['[1][0][0][0]','[1][0][0][1]'],['[1][0][1][0]','[1][0][1][1]']], _ [['[1][1][0][0]','[1][1][0][1]'],['[1][1][1][0]','[1][1][1][1]']]]] $a = 0x0f456789 ; 345 ; ;MsgBox(0,"","0x00" & hex($a ,6)) MsgBox(0, "Fill array examples", "$array1Dim [0] = " & $array1Dim [0] & @CRLF & @CRLF & _ "$array1Dim [1] = " & $array1Dim [1] & @CRLF & @CRLF & _ "$array1Dim [2] = " & $array1Dim [2] & @CRLF & @CRLF & _ "$array1Dim [3] = " & $array1Dim [3] & @CRLF & @CRLF & _ "$array3x4 [0][3] = " & $array3x4 [0][3] & @CRLF & @CRLF & _ "$array2x3x4 [1][0][1] = " & $array2x3x4[1][0][1] & @CRLF & @CRLF & _ "$array2x2x2 [1][0][1] = " & $array2x2x2[1][0][1] & @CRLF & @CRLF & _ "$array3x2x2 [1][0][1] = " & $array3x2x2[1][0][1] & @CRLF & @CRLF & _ "$array2x3x3 [1][0][1] = " & $array2x3x3[1][0][1] & @CRLF & @CRLF & _ "$array2x4x4 [1][2][3] = " & $array2x4x4[1][2][3] & @CRLF & @CRLF & _ "$array2x2x2x2 [1][1][0][1] = " & $array2x2x2x2[1][1][0][1] & @CRLF) ;=======> End of fill array examplesThis is suppose to reduce confusion with arrays. So, don't get caught up in the 3 dimensional arrays like I did. If anyone has other array related examples and willing to share, please do.Edit: 10/05/08Sort array - Siao's ArraySort link http://www.autoitscript.com/forum/index.ph...st&p=474072Edit: 12/05/08Join arrays monoceres - http://www.autoitscript.com/forum/index.ph...st&p=520053 Merge arrays weaponx - http://www.autoitscript.com/forum/index.ph...st&p=429815Edit:14/05/08Found this handy AutoIt Snippets site about arrays:http://quadryders.com/phpcc/browse.php?cid=3 Edited May 14, 2008 by Malkey Link to comment Share on other sites More sharing options...
Linux Posted May 9, 2008 Share Posted May 9, 2008 Algorithm For sorting arrays.Simple one: Wiki SourceBetter ones: More sorting Algorithmbe cool You can help! Donate to AutoIt! or, visit ClimatePREDICTION.netMy posts:Travian Bot Example (100+ servers) BETAHow to Host you code/app for free! (unlimited team number) (Public or Private)"Sir, we're surrounded!" "Excellent. We can attack in any direction!" Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now