Maxel Posted June 16, 2012 Share Posted June 16, 2012 (edited) Hello,i know there is probably another post quite like this with all the answers inside in this forum, but before you flame now plz consider that i searched now for like an hour without finding it :/. My tests havent brought me any further either. So here is my Question. Is it possible to declarate Variables with using for ? Like Arrays or such here the Wrong Version so it might be better understood:WRONG:for $i = 1 to 10 global $array{$i}[1] nextNow i DONT want to make a 2dim Array since the ubound function dosent seem to work with more than 2dim and i thought well i make 6 2dim arrays out of my 1 3dim one. So if anyone could help me with a quick tip i would appreciate that! Thx in Advancegreetz Maxedit: Ok then i cant explain the error but nevertheless the first question would help to automate the thing for different problems so an answer would be nice anyway heres the not working code ( plz dont hit me i know i'm quite bad ^^ and havent commented :/ )edit 2: the error...Stage 1 CompleteE:downloadsProgrammeautoitscriptsPixeltest.au3 (40) : ==> Error in expression.:for $x 0 to (ubound($array,3)-1)for $x 0 ^ ERROR>Exit code: 1 Time: 9.008edit 3: i'M stupid ... forgot the = .... might solve the problem ^^ anyway still corious about the first question edit 4: now i'm getting this error :/ Any Tips ( since i have that post already ^^ )Stage 1 CompleteE:downloadsProgrammeautoitPixeltest.au3 (45) : ==> No variable given for "Dim", "Local", "Global", "Struct" or "Const" statement.:redim($it12[$k])redim^ ERROR>Exit code: 1 Time: 8.607heres the original - with repeatable variable declaration i could caugh the lower block together.. tried fast some explaining comments but since it was just a try if it would work i havent been true with commentingexpandcollapse popup#include <Array.au3> #include<File.au3> HotKeySet("{f1}", "pixel") Global $array[6][3][144] Global $It12[1] Global $It13[1] Global $It14[1] Global $It15[1] Global $It16[1] while 1 sleep(500) wend func pixel() ; some fast comments here $x=555 ; x y position where pixelcheck shall start $y=359 for $k=0 to 2 ; creating 3dim array with hex checksums for $i=0 to 5 for $j=0 to 23 $array[$i][$k][$j]=hex(PixelGetColor($x+27*$i+$j ,$y+$k)) next Next Next ConsoleWrite("Stage 1 Complete") ; reminder for console to see if it rly runs ;) $z=0 ; now i want to check for duplicates ( the goal is to get pixel's which are in all 6 ( first dimension of the array ) Groups ! for $y = 0 to (ubound($array,2)-1) for $x =0 to (ubound($array,3)-1) for $y2 = 0 To (ubound($array,2)-1) for $x2 = 0 To (ubound($array,3)-1) if $array[$z][$x][$y] = $array[$z+1][$x2][$y2] Then $k=ubound($it12)-1 redim($it12[$k]) $It12[$k]=$array[$z][$x][$y] EndIf Next Next Next Next ConsoleWrite("Stage 2 Complete") $z=1 for $x = 0 to (ubound($It12)-1) ; Checking the IT12 array against the second Group the rest is the same for $y2 = 0 To (ubound($array,2)-1) for $x2 = 0 To (ubound($array,3)-1) if $It12[$x] = $array[$z+1][$x2][$y2] Then $k=ubound($item13)-1 redim($it13[$k]) $It13[$k]=$It12[$x] EndIf Next Next Next ConsoleWrite("Stage 3 Complete") $z=2 for $x = 0 to (ubound($Item13)-1) for $y2 = 0 To (ubound($array,2)-1) for $x2 = 0 To (ubound($array,3)-1) if $It13[$x] = $array[$z+1][$x2][$y2] Then $k=ubound($it14)-1 redim($it14[$k]) $It14[$k]=$It13[$x] EndIf Next Next Next ConsoleWrite("Stage 4 Complete") $z=3 for $x = 0 to (ubound($Item14)-1) for $y2 = 0 To (ubound($array,2)-1) for $x2 = 0 To (ubound($array,3)-1) if $It14[$x] = $array[$z+1][$x2][$y2] Then $k=ubound($it15)-1 redim($it15[$k]) $It15[$k]=$It14[$x] EndIf Next Next Next ConsoleWrite("Stage 5 Complete") $z=4 for $x = 0 to (ubound($Item15)-1) for $y2 = 0 To (ubound($array,2)-1) for $x2 = 0 To (ubound($array,3)-1) if $It15[$x] = $array[$z+1][$x2][$y2] Then $k=ubound($it16)-1 redim($it16[$k]) $It16[$k]=$It15[$x] EndIf Next Next Next for $i = 0 to (ubound($It16)-1) ConsoleWrite($It16[$i] & @LF) next #cs old version for output before i found redim $string = "" $string2 = "" For $i = 0 To UBound($array) - 1 $o="a" $p=0 For $j = 0 To UBound($array, 2) - 1 $z=$j-24*$p $string &=( "$array[" & $i & "][" & $z & $o &"] = " & $array[$i][$j] & @LF) $string2 &=( $array[$i][$j] & @LF) if $z>22 Then $p=$p+1 if $p=1 Then $o="b" elseif $p=2 Then $o="c" elseif $p=3 Then $o="d" elseif $p=4 Then $o="e" elseif $p=5 Then $o="f" elseif $p=6 Then $o="g" EndIf EndIf Next Next $hFile = FileOpen(@ScriptDir & "2DArray.txt", 2) FileWrite($hFile, $string) FileClose($hFile) $hFile2 = FileOpen(@ScriptDir & "test.txt", 2) FileWrite($hFile2, $string2) FileClose($hFile2) #ce endfunc Edited June 16, 2012 by Maxel Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 16, 2012 Moderators Share Posted June 16, 2012 Maxel,UBound works fine with 3D arrays, so there is no need to split your 3D array. Perhaps if you posted the code you were having trouble with we could help you debug it. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area 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