Schleife 10x ausführen -> Nächste Schleife

  • Hallo!

    Wie schaffe ich es, dass eine Schleife nur "x"-Mal ausgeführt wird? Hatte in Erinnerung einfach zuerst $x = 0 und dann jedes mal $x = $x + 1... Doch irgendwas habe ich da falsch ;)

    Spoiler anzeigen

    sleep(5000)

    While 1
    $x = 0
    Do
    ...
    Send('{Down 1}')
    sleep (500)
    Send("{Enter}")
    sleep (500)
    ...

    $x = $x+1
    sleep(25000)
    ...

    ...
    If Not @error Then
    sleep (700)
    Send ("#{PRINTSCREEN}")
    sleep (700)
    EndIf

    If @error Then
    sleep (20000)
    MsgBox(4096, "Fail", "Fehler!")
    EndIf

    Until $x=10
    WEnd

    Unwichtige Sachen habe ich jetzt einfach herausgenommen, um das ganze etwas Übersichtlicher zu gestalten.

    LG

  • Dafür gibt es For-Schleifen.^^

    [autoit]


    Opt("ExpandVarStrings", True)

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

    For $i = 1 To 10
    ConsoleWrite("1. Schleife: $i$" & @CRLF)
    Next

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

    For $i = 1 To 10
    ConsoleWrite("2. Schleife: $i$" & @CRLF)
    Next

    [/autoit]

    lg

  • Vielen Dank!

    Also kann ich fast den gesamten Code einfach so reinkopieren?

    Funktionieren die If-Schleifen auch ganz normal oder muss ich die iwie umschreiben?

    LG

  • Also ersetzt dann das "While True" meine zweite If-"Kontrollstruktur?" oder?
    Und die erste - also meine "Screenshotfunktion" setze ich einfach in die For - Next Schleife.
    Richtig?

  • Hi, das geht auch. :thumbup:
    Schau Dir mal die Hilfe an.

    [autoit]


    Local $i = 0
    While $i <= 10 ; Abbruchbedingung = $i <= 10
    MsgBox(0, "Der Wert von $i lautet:", $i)
    $i += 1 ; $i um eins erhöhen
    WEnd
    ; Example 2
    While True ; eine endlose Schleife (Abbruchbedingung = True)
    For $i = 1 To 10 ; For-Schleife zum zählen (von 1 bis 10)
    ;Dein Code...
    Next ;Ende der For-Schleife
    WEnd ;Ende der While-Schleife
    ; Ende

    [/autoit]
  • Vielen Dank! Da ich keinen neuen Thread aufmachen möchte, habe ich noch eine kleine (ws. sehr simple) Frage:

    Spoiler anzeigen


    $x=14
    Send("{$x}")

    Send("{$x+1}")


    Ich möchte also in meinem ersten Send-Befehl die Zahl 14 an z.B ein Textfeld senden, danach 15 usw.

    Was mache ich falsch?

  • Wenn du auf Variablen in Strings im Format $VARNAME$ zugreifen willst, musst du Opt("ExpandVarStrings", True) setzen.
    Aber so kommst du hier nicht weiter:

    [autoit]


    $x = 14
    Send($x)
    Send($x + 1)

    [/autoit]

    lg

  • Immer wenn ich While`n ohne Sleep sehe bekomm ich ein Computerkrampf :D
    Ich empfehle das True mit " Sleep(10) " zu ersätzen.
    Also:

    [autoit]

    While sleep(10)

    [/autoit]


    (Weniger als 10 macht wenig Sinn, da 10 soweit ich weis das minimale ist, auser man verwendet hightprecisionsleep)
    Also man macht das um die Computerauslastung zu schohnen,
    um keine 100% auslastung zu bekommen :D

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

  • Oh, das ist mir nicht aufgefallen xD na dann.

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes: