_ArraySearch - habe ich da was falsch verstanden?

  • Moin,

    hänge wieder mit der doofen Funktion _ArraySearch fest. Die Hilfe besagt folgendes:

    [autoit]

    _ArraySearch(Const ByRef $avArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iPartial = 0 [, $iForward = 1 [, $iSubItem = -1]]]]]])

    [/autoit]


    wenn ich bei $iSubitem 0 angebe, wird doch normalerweise in einem 2d-Array nur die erste Spalte (Spalte 0) dursucht, richtig? Oder bin ich ganz und gar plemplem?

  • Hallo Scritch,
    ich verstehe unter "Subitem" die Angabe der zu durchsuchenden Dimension (Spalte) des Arrays.
    Vielleicht hilft Dir das Array-Tutorial von BugFix beim Verstehen weiter.
    Außerdem ist der "default"-Wert dieses Parameters "-1".
    Übrigens wurde dasselbe Problem in diesem Forum schonmal gelöst. Der dritte Treffer, wenn man in einer Suchmaschine "_ArraySearch", "AutoIt" und "Subitem" eingibt...

  • Weil hier das Subitem ja auch als Spaltenangabe fungiert:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Beispiel 2 (verwendet ein 2D Array)
    ;===============================================================================
    Local $avArray[6][2] = [ _
    ["String0", "SubString0"], _
    ["String1", "SubString1"], _
    ["String2", "SubString2"], _
    ["String3", "SubString3"], _
    ["String4", "SubString4"], _
    ["String5", "SubString5"]]

    _ArrayDisplay($avArray, "$avArray")

    $sSearch = InputBox("_ArraySearch() Demo", "Welcher String soll gesucht werden?")
    If @error Then Exit

    $sColumn = InputBox("_ArraySearch() Demo", "Welche Spalte soll durchsucht werden?")
    If @error Then Exit
    $sColumn = Int($sColumn)

    $iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1, 1, $sColumn)
    If @error Then
    MsgBox(0, "Nicht gefunden", '"' & $sSearch & '" wurde nicht in der Spalte ' & $sColumn & ' gefunden.')
    Else
    MsgBox(0, "Gefunden", '"' & $sSearch & '" wurde im Array an Stelle ' & $iIndex & ' in der Spalte ' & $sColumn & ' gefunden.')
    EndIf

    [/autoit]