Jump to content
Sign in to follow this  
NiceBoy1234

Get Array Index of for loop in if statement

Recommended Posts

How can I access a variable with its index of a loop inside my if statment.

Code:
 

For $i = 0 To UBound($aFileListFootageFolderRe_01) - 1
      ...
      Next

     If $getTimeNewFootageFolderInit_01 <> $getTimeNewFootageFolder_01 And $aFileListFootageFolderRe_01[$i] == 11) Then
      ...
     EndIf

I get following error while doing this:
 

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

Thus the error points at this

$aFileListFootageFolderRe_01[$i]

Share this post


Link to post
Share on other sites

to debug, before the "For" section, call _ArrayDisplay() to make sure the array exists and is 1-D.

also, i assume you mean the "Next" line should be after the If...EndIf, so it is inside the loop and performed over every element, right? if not, then make sure $i has a valid value after the loop is done.

Share this post


Link to post
Share on other sites

No Next should not be after If Endif, so after the for loop I have to declare my "i" like $i = 0.
Thus what do you mean excatly with 1-D?
nevermind 1 Dimensional :)

Edited by NiceBoy1234

Share this post


Link to post
Share on other sites

You could use _ArraySearch to get the index of the value you're looking for

#include <Array.au3>
Global const $aValues[] = ["This", "Is", "a", "test", "AutoIt", "Rulez!"]
Global const $sValueToFind1 = "AutoIt"
Global const $sValueToFind2 = "Cake"
Global const $iIndex1 = _ArraySearch($aValues, $sValueToFind1)
Global const $iIndex2 = _ArraySearch($aValues, $sValueToFind2)

If ($iIndex1 > -1) Then
    MsgBox("", "", "Found '" & $aValues[$iIndex1] & "' at index " & $iIndex1)
Else
    MsgBox("", "", "Could not find the value '" & $sValueToFind1 & "' for index $iIndex1")
EndIf

If ($iIndex2 > -1) Then
    MsgBox("", "", "Found '" & $aValues[$iIndex2] & "' at index " & $iIndex2)
Else
    MsgBox("", "", "Could not find the value '" & $sValueToFind2 & "' for index $iIndex2")
EndIf

 

Edited by InunoTaishou

Share this post


Link to post
Share on other sites

please attach a screenshot of _ArrayDisplay (or a console output you can generate with this) and the value of $i right before the offending "If".

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • By sksbir
      Hi
      Trying this from autoit v3.3.14.5 and SCITE 3.19.102.1901.0 :
      help file , page "Language Reference - Variables" , sample autoit script about maps:

      Maps must be declared before use by defining their scope using the 'Global/Local/Static' keywords. Local $mControls[]
      So is my test script : only with this local declation.
      -check syntax is OK
      - running script : 

      test.au3" (13) : ==> Variable subscript badly formatted.: Local $mControls[] Local $mControls[^ ERROR ->14:51:49 AutoIt3.exe ended.rc:1
      any clue ?
    • By Blitzkid
      Hello, i want to search several directories for files with the largest numbers behind them (Like "video123") . They dont have a datatype. But there are also files with longer names and datatypes in these folders (Like "video778.mp4"). Is it possible to filter the _FileListToArray Syntax from
      to smth. like
       
      Here is my Code
      #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <array.au3> #include <File.au3> $filedir = @ScriptDir & "\" _checkfile() Func _checkfile() ConsoleWrite("______________________" & @CRLF) Local $arr[3] = ["music", "picture", "video"] For $i = 0 To UBound($arr) - 1 Local $arrayfiles = _FileListToArray($filedir & $arr[$i], $arr[$i] & "*", 1) If @error = 1 Then ConsoleWrite($arr[$i] & "Error 1") EndIf If @error = 4 Then ConsoleWrite($arr[$i] & "Error 2") ;Exit EndIf $arrayfilter = _ArrayMax($arrayfiles, 0, 1) Global $stringfiles = StringReplace($arrayfilter, $arr[$i], "") ConsoleWrite($arrayfilter & @CRLF) Next EndFunc ;==>_checkfile  
    • By jmp
      Script running good but error in line 7.
      When i run this script :
      #include <IE.au3> #include <Array.au3> $oIE = _IEAttach ("Shop") $oTable = _IETableGetCollection ($oIE, 1) $aTableData = _IETableWriteToArray ($oTable) For $inumber = 1 To UBound($aTableData) -1 $table = $aTableData[4][$inumber] MsgBox(0, "", $table) Next I got Error: array variable has incorrect number of subscripts or subscript dimension range exceeded
    • By nacerbaaziz
      Good morning guys, i hope that you're all well.
      guys, i have a problem and i hope that you can help me
      i've created an 3d array
      the array Contain a Categories info
      as folow
      $array[n][0][0] = Categorie name
      $array[n][0][1] = Categorie file path
      $array[n][0][2] = Categorie contents number
      $array[n][m][0] = link name
      $array[n][m][1] = link url
      $array[n][m][2] = link section name
      in my tool i want to add an option to delete a Category
      as you know the Categorie mean that must delete a region from the array
      when i tried to use _arrayDelete
      with the 2d array it work well
      but here i couldn't find any way to do that, can any one help me please?
      thanks in advance.
×
×
  • Create New...