2

is there a way to optimize this nested loop example to use a dynamic number of these var_Arrays?

'Dim var0_Arr : var0_Arr = Array(min,   max,    step)
Dim var1_Arr : var1_Arr =   Array(0,    1.0,    0.5)
Dim var2_Arr : var2_Arr =   Array(0,    1.0,    0.5)
Dim var3_Arr : var3_Arr =   Array(0,    1.0,    0.5)
Dim var4_Arr : var4_Arr =   Array(0,    1.0,    0.5)
'Dim var5_Arr : var5_Arr = ...
'Dim var6_Arr : var6_Arr = ...
'...

for var1 = var1_Arr(0) to var1_Arr(1)  step var1_Arr(2)
    for var2 = var2_Arr(0) to var2_Arr(1)  step var2_Arr(2)
        for var3 = var3_Arr(0) to var3_Arr(1)  step var3_Arr(2)
            for var4 = var4_Arr(0) to var4_Arr(1)  step var4_Arr(2)
                msgbox var1 & " " & var2 & "    " & var3 & "    " & var4
            next
        next
    next
next

I thought to use something like this:

Dim var_Arr : var_Arr = Array(  Array(0,    1.0,    0.5),_
                                Array(0,    1.0,    0.5),_
                                Array(0,    1.0,    0.5),_
                                Array(0,    1.0,    0.5))

With UBound(var_Arr) I would know how deep I have to go with the nested loop,but I have no idea how to implement a dynamic nested loop in combination with the dynamic ranges (min, max, step)

Stewe21
  • 21
  • 1

1 Answers1

0

This answer solved my problem: https://stackoverflow.com/a/4683760/6440754

Only Slice was not supported in vbs:

Function Slice(ByRef arrArray, intStart, intEnd)

    If intEnd = vbNull Then intEnd = UBound(arrArray)
    If intStart < 0 Then intStart = UBound(arrArray) - intStart

    arrTemp = Array()
    intCount = 0

    For i = intStart To intEnd
        ReDim Preserve arrTemp(intCount)
        arrTemp(intCount) = arrArray(i)
        intCount = intCount + 1
    Next

    Slice = arrTemp

End Function

Source https://www.aspfree.com/c/a/code-examples/creating-useful-array-functions/

Community
  • 1
  • 1
Stewe21
  • 21
  • 1