Jump to content

Recommended Posts

Posted

Hello,

I need to create a bunch of arrays and want them to be initialized with 0 (because I do not know which is the value that would be assigned to each element of the array if I would just create it, maybe somebody can tell me) so I can determine which elements have actually been used (the ones that are not 0 at the beginning of each array). I've looked up the "Dim" function in the Keyword/Statement Reference and it says that I just have to type "Dim $Array[50]" and then something I do not understand. Is it "=0" or "[=0]" or "[0]" or something else?

Of course I could just run a While Loop and initialize all arrays, but I need to create about 26 arrays and would like to save the time (and space) I would need for doing this.

As I am going on holiday tomorrow and won't have access to the Internet for four weeks, I would be glad for an answer before, say, 23 o'clock my time, as I live in Germany this is the GMT+1 (or UTC+1) time.

With best wishes

Themistokles

Posted

You can always just write a function to initialize an array.

Dim $a1[5], $a2[10], $a3[50], $a4[15]

_InitializeArray($a1)
_InitializeArray($a2)
_InitializeArray($a3)
_InitializeArray($a4)

Func _InitializeArray(ByRef $aArray)
    Local $i, $iMax
    $iMax = UBound($aArray)-1
    For $i=0 To $iMax
        $aArray[$i] = 0
    Next
EndFunc
Posted

Actually, after re-reading your original post. The default value for each array is: 0 or "" (depending on what kind of data you are storing). Either one of these will work. So as long as none of the data you are populating your arrays with matches 0 or "", then you should be fine with just declaring the arrays. Here's a little test for you.

Dim $a1[5]
$a1[1] = 3
$a1[2] = "h"

For $i=0 To 4
    If $a1[$i] = 0 Then ConsoleWrite($i & ": Data is unchanged (0)" & @LF)
    If $a1[$i] = "" Then ConsoleWrite($i & ': Data is unchanged ("")' & @LF)
Next

Notice index 2 evaluates true for the statement $a1[$i] = 0 because the value stored in the array is not a integer.

Posted (edited)

I believe _ArrayCreate was removed with the current version of AutoIt (3.2.12) due to new array handling.

Bob

Edited by YellowLab

You can't see a rainbow without first experiencing the rain.

Posted

I believe _ArrayCreate was removed with the current version of AutoIt (3.2.12) due to new array handling.

Bob

_ArrayCreate() documentation has been removed. The function is still present but may be removed at a later time. Scripts should be updated to use the array initialization syntax built into AutoIt.

Still there. :)

[font="Georgia"]Chances are, I'm wrong.[/font]HotKey trouble?Stringregexp GuideAutoIT Current Version

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
×
×
  • Create New...