Mit _ArraySearch() die Nummer des Arrays auslesen?

  • Hi,

    ich möchte mit ArraySearch einen bestimmten String suchen in einem Array. Wenn er den gefunden hat, soll $test = die Nummer des Arrays gesetzt werden, wo dieser gefunden wurde

    Kann mir jemand helfen ?

    Danke im vorraus

  • Hier ist ein kleines Beispiel...

    [autoit]

    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $string, $test
    Dim $a[5]

    [/autoit][autoit][/autoit][autoit]

    $string = "test"

    [/autoit][autoit][/autoit][autoit]

    $a[0] = "Hallo"
    $a[1] = "dies ist"
    $a[2] = "ein"
    $a[3] = "test"
    $a[4] = "... das wars"

    [/autoit][autoit][/autoit][autoit]

    $test = _ArraySearch($a, $string)
    If @error Then
    MsgBox(0, "Error!", $string & " : konnte nicht gefunden werden!")
    Else
    MsgBox(0, "Gefunden!", $string & " befindet sich im Array: $a[" & $test & "]" & " = " & $a[$test])
    EndIf

    [/autoit]

    PS: guck dir mal die Hilfedatei an.. die Hilft i.d.R. bei 50% aller Probleme

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • [autoit]

    #include <Array.au3>
    ;~ Local $aArray[5]
    ;~ $aArray[0] = "Peter"
    ;~ $aArray[1] = "Max"
    ;~ $aArray[2] = "Karl"
    ;~ $aArray[3] = "Herbert"
    ;~ $aArray[4] = "Jürgen"

    [/autoit][autoit][/autoit][autoit]

    Local $aArray[5] = ["Peter", "Max", "Karl", "Herbert", "Jürgen"]
    $iRet = _ArraySearch($aArray, "Herbert")
    If Not @error Then MsgBox(0, "", "Gefunden bei $aArray[" & $iRet & "] = " & $aArray[$iRet])

    [/autoit]
  • Danke für die Antworten. Funktioniert doch ! DANKE


    Kann mir nur noch einer kurz sagen wieso mein IniRead nicht geht?

    $aktExcelReihe = IniRead(@ScriptDir&"\config.ini","VALUES",$reihe,"0")


    ini sieht so aus


    [VALUES]


    $reihe=7

    Einmal editiert, zuletzt von AutoITboy (3. September 2010 um 11:14)

  • Hier noch ein Beispiel für das oben (gelöste) Problem

    Spoiler anzeigen
    [autoit]

    #include <array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $html = "<html>" & @CRLF & @TAB & "<head>" & @CRLF & @TAB & "</head>" & @CRLF & @TAB & "<body>" & @CRLF & @TAB & @TAB & "<b>Equipment Software </b><br>" & @CRLF & @TAB & "</body>" & @CRLF & "</html"
    $Suche = "<b>Equipment Software </b><br>"
    MsgBox(0, "HTML - Beispieltext", $html)
    $aHtml = StringSplit(StringStripCR($html), @LF)
    $GesuchteZeile = _ArraySearch($aHtml, $Suche, 0, 0, 0, 1)
    If Not @error Then
    MsgBox(0, "Ergebnis:", $Suche & " steht in Zeile : " & $GesuchteZeile & " von insgesamt " & $aHtml[0] & " Zeilen!" & @CRLF & _
    "und beginnt ab dem Zeichen: " & StringInStr($aHtml[$GesuchteZeile], $Suche) & " und besteht aus : " & StringLen($Suche) & " Zeichen!")
    EndIf

    [/autoit]

    Nun zu dem "neuen":

    [autoit]

    $aktExcelReihe = IniRead(@ScriptDir&"\config.ini","VALUES","$reihe","0")
    ;Sollte nun funktionieren, aber ggf. nicht das gewünschte Ergebnis liefern...

    [/autoit][autoit][/autoit][autoit]

    $reihe = "$reihe"
    $aktExcelReihe = IniRead(@ScriptDir&"\config.ini","VALUES",$reihe,"0"); sucht nun nach dem Key $reihe der den Wert "$reihe" besitzt...
    ; kann später ja eine Zahl beinhalten

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!