Funktionsreferenz

_ArraySearch

Findet einen Eintrag in einem 1-dimensionalen oder 2-dimensionalen Array. Ähnlich wie _ArrayBinarySearch(), mit der Ausnahme, dass kein sortiertes Array erforderlich ist.

#Include <Array.au3>
_ArraySearch(Const ByRef $avArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iPartial = 0 [, $iForward = 1 [, $iSubItem = -1]]]]]])

 

Parameter

$avArray Das zu durchsuchende Array
$vValue Der Suchbegriff
$iStart [optional] Startindex für die Suche
$iEnd [optional] Stoppindex für die Suche
$iCase [optional] Wenn auf 1 gesetzt ist, wird die Groß- und Kleinschreibung berücksichtigt.
$iPartial [optional] Wenn auf 1 gesetzt wird die Teilsuche aktiviert.
$iForward [optional] Wenn auf 0 gesetzt wird das Array rückwärts (vom Ende zum Anfang) durchsucht anstatt vorwärts (vom Anfang zum Ende)
$iSubItem [optional] Sub-index in dem bei einem 2-dimensionalem Array gesucht werden soll

 

Rückgabewert

Erfolg: Der Index wo $vValue gefunden wurde
Fehler: -1, setzt @Error:
@error: 1 - $avArray ist kein Array
2 - $avArray ist kein 1-dimensionales oder 2-dimensionales Array
4 - $iStart ist größer als $iEnd
6 - $vValue wurde im Array nicht gefunden
7 - $avArray hat zu viele Dimensionen
(3, 5 - missbilligte Fehlercodes)

 

Bemerkungen

Diese Funktion kann langsamer sein als _ArrayBinarySearch(), aber sie ist nützlich, wenn die Array-Reihenfolge nicht geändert werden kann.

 

Verwandte Funktionen

_ArrayBinarySearch, _ArrayFindAll

 

Beispiel


#include <Array.au3>

;===============================================================================
; Beispiel 1 (verwendet ein 1D Array)
;===============================================================================
Local $avArray[6] = [ _
        "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

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

;===============================================================================
; 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