Hilfe bei Schleifenerstellung

  • Hallo,

    ich bin ein autoit Frischling und neu hier im forum.
    Daher ist meine frage relativ einfache^^
    Mit der autoit-hilfe hat es nicht geklappt.

    ich würde gern eine schleife erzeugen in der die Variablen jeweis um eins erhöht werden.

    Die schleife soll x-mal ausgeführt werden.

    Sleep($sleep)

    MouseMove($kor01, $kor02)
    MouseClick("left")
    Send($anz01)

    MouseMove($kor03, $kor04)
    MouseClick("left")
    Send($ort01)
    MouseMove($kor05, $kor06)
    MouseClick("left")
    Send($ort02)

    Send("{ENTER}")
    Sleep($sleep)

    MouseMove($kor07, $kor08)
    MouseClick("left")


    Sleep($sleep)

    Die roten Variablen sollen um 1 erhöht werden

  • Code
    int n = 1;
    
    
    while (n <= xmal)
    {
    Send(n);
    n++;
    
    
    }

    do ähnlich, aber das gleiche Prinzip

    2 Mal editiert, zuletzt von Suva Reca (26. Juli 2007 um 08:58)

    • Offizieller Beitrag

    Du mußt die Abbruchbedingung bzw. Schleifendurchlaufzahl noch festlegen.

    Spoiler anzeigen
    [autoit]

    Do
    Sleep($sleep)

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

    MouseMove($kor01, $kor02)
    MouseClick("left")
    Send($anz01)

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

    MouseMove($kor03, $kor04)
    MouseClick("left")
    Send($ort01 += 1)
    MouseMove($kor05, $kor06)
    MouseClick("left")
    Send($ort02 += 1)

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

    Send("{ENTER}")
    Sleep($sleep)

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

    MouseMove($kor07, $kor0cool
    MouseClick("left")

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

    Sleep($sleep)
    Until $abbruchbedingung = $wert

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

    ; ODER

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

    For $i = 1 To $AnzahlDurchlauf
    Sleep($sleep)

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

    MouseMove($kor01, $kor02)
    MouseClick("left")
    Send($anz01)

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

    MouseMove($kor03, $kor04)
    MouseClick("left")
    Send($ort01 += 1)
    MouseMove($kor05, $kor06)
    MouseClick("left")
    Send($ort02 += 1)

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

    Send("{ENTER}")
    Sleep($sleep)

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

    MouseMove($kor07, $kor0cool
    MouseClick("left")

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

    Sleep($sleep)
    Next

    [/autoit]
  • Zitat

    Original von Suva Reca

    Code
    int n = 1;
    
    
    while (n <= xmal)
    {
    Send(n);
    n++;
    
    
    }

    do ähnlich, aber das gleiche Prinzip

    Nächstes mal bitte Autoit ....

  • erstmal danke für die zahlreiche hilfe ;)

    hab diese variante gewählt

    nur bekomme ich nun folgenden fehler

    Send($ort01 +=1)
    Send($Ort01 ^ERROR

    Error: Error in expression

    Einmal editiert, zuletzt von adamadamo (26. Juli 2007 um 17:35)

  • Ansonsten zieh das einfach vor:

    Spoiler anzeigen
    [autoit]


    For $i = 1 To $20
    Sleep($sleep)

    MouseMove($kor01, $kor02)
    MouseClick("left")
    Send($anz01)

    MouseMove($kor03, $kor04)
    MouseClick("left")
    $ort01 +=1
    Send($ort01)
    MouseMove($kor05, $kor06)
    MouseClick("left")
    $ort02 +=1
    Send($ort02)

    Send("{ENTER}")
    Sleep($sleep)

    MouseMove($kor07, $kor08)
    MouseClick("left")


    Sleep($sleep)
    Next

    [/autoit]
  • Zur Versin: habe ich 2.64

    das program läuft schon mal ;)

    Danke

    jetzt ist nur das problem das er die Variable $ort01 +=2 um zwei erhöht, was ich aber möchte ist, dass er die nächste variable $ort03 nimmt, sprich in den vordeffinierte variabeln wechselt.

    • Offizieller Beitrag

    Oh mein Gott!
    Überlege dir bitte, ob du nicht Version 3 einsetzen kannst - die ist in allem leistungsfähiger!

    peethebee

    Edit: Wenn du wirklich 2.64 laufen hättest, würde kein einziger Code hier aus dem Forum laufen...
    http://wiki.autoit.de/wiki/index.php…toit_updaten.3F

  • zu dem problem

    jetzt ist nur das problem das er die Variable $ort01 +=2 um zwei erhöht, was ich aber möchte ist, dass er die nächste variable $ort03 nimmt, sprich in den vordeffinierte variabeln wechselt.

    kommt noch das er sofort die variable um 2 erhöht, dass heisst er erhöcht erst und dann betrachtet er die variable.

    ich glaube die zeilen müssen vertaucht wern, richtig?

    [autoit]


    $ort01 +=2
    Send($ort01)

    [/autoit]

    Einmal editiert, zuletzt von adamadamo (26. Juli 2007 um 20:08)

  • Zitat

    Original von Daniel W.
    Probieren, dann fragen -.-

    schon klar es geht mir auch viel mehr um das erste problem^^

    das mit dem tauschen klappt ;)

  • dies klappt leider auch nicht

    Send($ort(01 +=2))


    egal wie ich es dreh und wende

    er soll erst variable $ort01 dann $ort03 dann $ort05 nehmen

  • Spoiler anzeigen
    [autoit]

    $sleep = 5000 ; warten

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

    $kor01 = 300 ; x Koordinate
    $kor02 = 400 ; y Koordinate

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

    $kor03 = 300
    $kor04 = 520
    $kor05 = 380
    $kor06 = 520
    $kor07 = 180 ; OK y Koordinate
    $kor08 = 500 ; OK y Koordinate

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

    $anz01 = 10

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

    ; ----------------------------------------------------------------------------
    Dim $orfArray[11] ; Array wird definiert
    $orfArray[01] = 364
    $orfArray[02] = 728
    $orfArray[03] = 366
    $orfArray[04] = 728
    $orfArray[05] = 366
    $orfArray[06] = 730
    $orfArray[07] = 367
    $orfArray[08] = 732
    $orfArray[09] = 367
    $orfArray[10] = 730

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

    ; ----------------------------------------------------------------------------

    For $i = 1 To 5

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

    Sleep($sleep)

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

    MouseMove($kor01, $kor02)
    MouseClick("left")
    Send($anz01)

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


    MouseMove($kor03, $kor04) ; x
    MouseClick("left")
    Send($orfArray[01] +=2)


    MouseMove($kor05, $kor06) ; y
    MouseClick("left")
    Send($orfarray[02] +=2)


    Send("{ENTER}")
    Sleep($sleep)

    MouseMove($kor07, $kor08)
    MouseClick("left")


    Sleep($sleep)
    Next

    [/autoit]

    ich hoffe dasmit array ist so richtig

    folgende fehler bekomme ich
    Send($orfArray[01] +2)
    Send($orfArray[01]^ERROR

    Error: Error in expression.

    Einmal editiert, zuletzt von adamadamo (27. Juli 2007 um 00:35)

  • Spoiler anzeigen
    [autoit]

    $sleep = 5000 ; warten

    $kor01 = 300 ; x Koordinate
    $kor02 = 400 ; y Koordinate

    $kor03 = 300
    $kor04 = 520
    $kor05 = 380
    $kor06 = 520
    $kor07 = 180 ; OK y Koordinate
    $kor08 = 500 ; OK y Koordinate

    $anz01 = 10

    ; ----------------------------------------------------------------------------
    Dim $orfArray[11] ; Array wird definiert
    $orfArray[01] = 364
    $orfArray[02] = 728
    $orfArray[03] = 366
    $orfArray[04] = 728
    $orfArray[05] = 366
    $orfArray[06] = 730
    $orfArray[07] = 367
    $orfArray[08] = 732
    $orfArray[09] = 367
    $orfArray[10] = 730



    ; ----------------------------------------------------------------------------

    For $i = 1 To 5
    $x = 1
    Sleep($sleep)


    MouseMove($kor01, $kor02)
    MouseClick("left")
    Send($anz01)


    MouseMove($kor03, $kor04) ; x
    MouseClick("left")
    Send($orfArray[$x])

    $x += 2
    MouseMove($kor05, $kor06) ; y
    MouseClick("left")
    Send($orfarray[$x])


    Send("{ENTER}")
    Sleep($sleep)

    MouseMove($kor07, $kor08)
    MouseClick("left")


    Sleep($sleep)
    Next

    [/autoit]