Text finden

  • Hallo jungs habe eine kurze frage. hab in der hilfe leider diesbezüglich nichts gefunden. ich habe folgenden text

    Code
    $test = "Hallo, ich habe das Problem dass ein Script das ich mit AutoIT gemacht habe viel zu langsam einen Text schreibt. ..."

    dies ist natürlich nur ein bsp text. aber wenn hier das Wort AutoIT vorkommt soll eine ifabfrage gestartet werden mit folgender bedingung.

    vielen dank für eure bemühungen

    edit: noch eine kleine frage hat sich ergeben:
    hab eine forschleife:

    [autoit]

    For $i = 0 to 14 Step +1

    $output = "text"&$i

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

    Next

    [/autoit]

    kann man es irgendwie anstellen das die Variable auch eine Zahl zugeweisen bekommt?
    z.b: $output0 , $output1, $output2 ... bis 14 halt ?

    • Offizieller Beitrag

    1.

    [autoit]

    If StringInStr($txt, 'Autoit') Then
    ; Aktion
    Endif

    [/autoit]

    2.

    [autoit]

    For $i = 1 To 5
    Assign('Variable' & $i, 'Wert: ' & $i)
    Next
    ConsoleWrite('1. Var: ' & Eval('Variable1') & @CRLF)
    ConsoleWrite('2. Var: ' & Eval('Variable2') & @CRLF)
    ConsoleWrite('3. Var: ' & Eval('Variable3') & @CRLF)
    ConsoleWrite('4. Var: ' & Eval('Variable4') & @CRLF)
    ConsoleWrite('5. Var: ' & Eval('Variable5') & @CRLF)

    [/autoit]
  • vielen dank für deine hilfreiche information

    jetzt möchte ich es doch gerne mit arrays machen weil du mich jetzt heis gemacht hast :)

    jetzt ist die frage wie:
    habe folgende Daten:

    Name1,Adresse1, Telefonnummer1
    Name2,Adresse2, Telefonnummer2
    Name3,Adresse3, Telefonnummer3

    jetzt möchte ich ein array:

    test[1] = Name1
    test[1][1] = Adresse1
    test[1][1][1] = Telefonnummer1

    soweit ist es mir klar

    nur ich definiere die Arrays dann wieder mittels $i sprich ich habe eine for schleife die die daten ausliest und dann 1,14 durchläuft jetzt müsste das array aber auch immer 1,2,3,4... mitgeteilt bekommen.

    aber array[$i] = geht leider nicht :(

  • Warum benutzt du nicht ein zweidimensionales Array?

    [autoit]

    Enum $NAME,$ADRESSE,$TELEFONNUM
    Dim $array[3][3] = [["Name1","Adresse1","Telefonnummer1"],["Name2","Adresse2","Telefonnummer2"],["Name3","Adresse3","Telefonnummer3"]]

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

    For $i=0 To UBound($array)-1 Step 1
    ConsoleWrite("Name: "&$array[$i][$NAME]&@CRLF&"Adresse: "&$array[$i][$ADRESSE]&@CRLF&"Telefonnummer: "&$array[$i][$TELEFONNUM]&@CRLF)
    Next

    [/autoit]
  • ein klitzekleiner denkfehler für deinen fall braucht man nämlich nur ein 2dimensionales array ;)

    $array[0][0] = Zeile 1 Spalte 1
    $array[0][1] = Zeile 1 Spalte 2
    $array[0][2] = Zeile 1 Spalte 3

    usw...

    und dann halt einfach:

    [autoit]

    for $x = 0 To Ubound($array, 1) -1
    for $y = 0 To Ubound($array, 2)-1
    $string &= $array[$x][$y]&"; "
    Next
    $string &= @LF
    Next
    ConsoleWrite($string)

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    • Offizieller Beitrag

    Man benutzt dann ein zweidimensionales Array (z.B. $test[1][3]). Die Zuweisung erfolgt dann folgendermaßen:

    Dim $test[1][3]
    $test[0][0] = Name1
    $test[0][1] = Adresse1
    $test[0][2] = Telefonnummer1

    Willst Du weitere Einträge zu dem Array hinzufügen machst Du ein ReDim:

    ReDim $test[2][3]

    und kannst dann dem neuen Array-Element Werte zuweisen:

    $test[1][0] = Name2
    $test[1][1] = Adresse2
    $test[1][2] = Telefonnummer2

    Wenn Du einen Datensatz auslesen willst, benutzt Du eine For...Next-Schleife:

    For $i = 0 To 2
    MsgBox(0,0, $test[0][$i])
    Next

    Beachten musst Du, dass Arrays immer mit Null beginnen. Wenn Du ein Array deklarierst z.B. mit Dim $test[2], dann hat das Array zwei Elemente (0 und 1) .

    Edit: Da waren welche schneller. :)

  • Nee das gibt es nicht... Ich? war schneller als Oscar? HAHA ... jetzt wird ersma gefeiert seit 1 1/2 Jahren das erste mal das ich schneller war :D :D :D

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D