2 While schleifen gleichzeitig durchlaufen

  • hi nochmal

    gibt es eine möglichkeit 2 while schleifen gleichzeitig zu durchlaufen??
    z.B.:

    [autoit]

    while 1
    send("hallo")
    wend
    ;;; und dann gleichzeitig:
    while 1
    send("welt")
    wend

    [/autoit]

    so dass das ergebnis dann ca so aussehen sollte:
    "hwaelllto"

    OHNE dabei 2 Programme parralel laufen zu lassen =??
    Danke für antworten
    Ps: Diesmal werde is länger warten... XD

  • So funktioniert das mit Sicherheit nicht. Wüsste auch nicht warum man das machen will.

    Je nachdem was du willst, kann dir das helfen oder nicht ;) :

    Spoiler anzeigen
    [autoit='Version 3.3.0.0']

    $String = 'HalloWelt'
    $aString = StringSplit($String, "", 2)

    While 1
    $aString = _ArrayShuffle($aString)
    For $i = 0 To UBound($aString) -1
    Send($aString[$i], 1)
    Next
    WEnd

    Func _ArrayShuffle($array) ; original funkey ;)
    If ( Not IsArray($array) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $Element = 0, $aHelp[UBound($array)]
    For $i = 0 To UBound($array) -1
    Do
    $element = Random(0, UBound($array) -1, 1)
    Until $array[$element] <> ""
    $aHelp[$i] = $array[$element]
    $array[$element] = ""
    Next
    Return $aHelp
    EndFunc

    [/autoit]
  • ich denke in Vertretung aller kann man auf Deine Frage nur antworten:
    NEIN.

    Ich fürchte aber, dass Du den Fehler begehst, etwas machen zu wollen und Deine Lösungssuche schon von vornherein einschränkst, ?(
    indem Du die Lösung Deiner Wahl schon präsentierst und nur noch hinterfragst ob das auch geht, anstatt einfach Dein Problem zu schildern.

    Man kann fast alles machen. :D
    Die Lösung sieht aber meistens anders aus, als man sich das selber mit dem vorhandenen Wissen vorstellen kann.

    Daher mein Vorschlag:
    Stelle Dein Problem vor und lass andere für Dich denken.
    Von den Ideen können wir dann alle profitieren. ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • funkey : erst lesen dann denke und dann posten

    warum sollte das nicht funktionieren?

    [autoit]


    while 1
    send("hallo")
    send("welt")
    wend

    [/autoit]

    das sind die Befehle zusammen gefasst

    und wenn man doch getrennt haben will

    [autoit]


    Func Hallo()
    send("hallo")
    EndFunc

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

    Func Welt()
    send("welt")
    EndFunc

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

    While
    hallo()
    welt()
    WEnd

    [/autoit]
  • Nein, das würde ja nur die beiden worte mixen.
    Aber dann führe ich das halt hintereinander aus.
    Thx td!!!

  • Auch wenn das Problem ja schon gegessen ist, ich muss da doch mal mein Senf zugeben

    funkey : erst lesen dann denke und dann posten

    warum sollte das nicht funktionieren?

    Genau diesen Spruch solltest du dir mal zu Gemüte führen. Erst einmal ist deine "Lösung" unglaublich trivial, es ist schon fast eine Beleidung an den gesunden Menschenverstand. Sie tut natürlich nicht das was gewünscht ist (nämlich beide Befehle gleichzeitig ausführen), sie arbeitet einfach beide Befehle HINTEREINANDER ab. Darum ging es in diesem Thread nie.

  • @PeterPan

    erstmal halt dich zurück... du bist gerade hier neu :P

    und dann ist die anwort: nein man kann in AutoIt keine 2 Befehle Gleichzeitig ausführen. die kann man höstens hintereinander ausführen

    so z.B.:

    [autoit]

    Func Hallo()
    send("hallo")
    EndFunc

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

    Func Welt()
    send("welt")
    EndFunc

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

    While
    hallo()
    welt()
    WEnd

    [/autoit]

    ich weis nicht was es da zu bemängeln gibt.

    die Info´s werden aus der Funk geladen/Ausgeführt und das hintereinander, aber trotzdem bleiben die Funktionen Funktionen XD.

    Ist eigentlich wie C++ da kann man auch nur ein schritt nachem anderen

    Code
    int y = 2;
    int x = 1;
    y = y - x;
    x = x - y;

    Und jetzt nicht hier den Aggro aufstand anzetteln ;)