Findet einen Eintrag in einem 1D oder 2D Array. Ähnlich wie _ArrayBinarySearch(), mit der Ausnahme, dass kein sortiertes Array erforderlich ist
#include <Array.au3>
_ArraySearch ( Const ByRef $aArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iCompare = 0 [, $iForward = 1 [, $iSubItem = -1 [, $bRow = False]]]]]]] )
$aArray | 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. |
$iCompare | [optional] 0 Vergleich von Variablen des gleichen Typs (Standard), "String" = 0, "" = 0 oder "0" = 0 passt (Wenn $iCase = 0) 1 führt eine Teilsuche aus 2 Vergleich passt, wenn die Variablen vom gleichen Typ sind und den gleichen Wert haben 3 Vergleich verwendet als Muster einen regulären Ausdruck der in $vValue geschrieben steht |
$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 2D Array gesucht werden soll |
$bRow | [optional] Falls True, dann setzt $iSubItem die zu durchsuchende Zeile - False (Standard) durchsucht Spalten |
Erfolg: | Der Index wo $vValue gefunden wurde |
Fehler: | -1 und setzt das @error Flag auf ungleich null |
@error: | 1 - $aArray ist kein Array 2 - $aArray ist kein 1D oder 2D Array 3 - $aArray ist leer 4 - $iStart ist größer als $iEnd 5 - Array ist kein 2D Array und $bRow ist auf True gesetzt 6 - $vValue wurde im Array nicht gefunden |
Diese Funktion kann langsamer sein als _ArrayBinarySearch(), aber sie ist nützlich, wenn das Array vor der Suche nicht sortiert werden kann.
Die Werte von $iCompare können nicht miteinander kombiniert werden.
_ArrayBinarySearch, _ArrayFindAll
#include <Array.au3>
#include <MsgBoxConstants.au3>
Local $aArray[6][4]
For $i = 0 To 5
For $j = 0 To 3
$aArray[$i][$j] = "#" & $i & $j
Next
Next
_ArrayDisplay($aArray, "Suche nach '#32'", Default, 8)
; Suche in Spalten (Suchen in Spalte 2)
Local $iIndex = _ArraySearch($aArray, "#32", 0, 0, 0, 0, 1, 2)
MsgBox($MB_SYSTEMMODAL, "Gefunden '#32'", "Spalte 2 on Zeile " & $iIndex)
; Suche in Zeilen (Suchen in Zeile 3)
$iIndex = _ArraySearch($aArray, "#32", 0, 0, 0, 0, 1, 3, True)
MsgBox($MB_SYSTEMMODAL, "Gefunden '#32'", "Zeile 3 in Spalte " & $iIndex)
#include <Array.au3>
#include <MsgBoxConstants.au3>
;verwendet ein 2D Array
Local $avArray[6][2] = [ _
["String0", "SubString0"], _
["String1", "SubString1"], _
["String2", "SubString2"], _
["String3", "SubString3"], _
["String4", "SubString4"], _
["String5", "SubString5"]]
_ArrayDisplay($avArray, "$avArray")
Local $sSearch = InputBox("_ArraySearch() Demo", "Welcher String soll gesucht werden?")
If @error Then Exit
Local $sColumn = InputBox("_ArraySearch() Demo", "Welche Spalte soll durchsucht werden?")
If @error Then Exit
$sColumn = Int($sColumn)
Local $iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1, 1, $sColumn)
If @error Then
MsgBox($MB_SYSTEMMODAL, "Nicht gefunden", '"' & $sSearch & '" wurde nicht in der Spalte ' & $sColumn & ' gefunden.')
Else
MsgBox($MB_SYSTEMMODAL, "Gefunden", '"' & $sSearch & '" wurde im Array an Stelle ' & $iIndex & ' in der Spalte ' & $sColumn & ' gefunden.')
EndIf