ConsoleWrite() und Fehlermeldungen darin unter bestimmten Bedingungen

  • hallo zusammen,

    ich glaube nicht, dass dies in programmieranfragen gehoert, denn es geht hierbei nicht um programmierfragen, sondern wohl eher um verstaendnisfragen und dabei ist es total egal um welche art von script es sich dabei handelt. die meisten probleme entstehen immer mit und bei For-To-Next-Schleifen und es ist fuer micht fast unmoeglich herauszufinden wieso da fehler auftauchen, also folgende sache habe ich versucht:

    das ist der basis code den ich jetzt verwendet habe. nun kommen meine fragen und fehlermeldungen aus der ConsoleWrite() funktion:

    Code
    For $a = 0 To 144
        For $b = 0 To 144
    ConsoleWrite("Dice: " & $numbers2[$b] & " ----------> " & " Number: " & $numbers1[$b] &@CRLF)
    Next
    Next

    ConsoleWrite() spuckt folgendes aus (stark verkuerzt):

    *perfekt* ... es sind exakt 144 ergebnisse und alles ist super. aber jetzt kommts. ich behebe den fehler auf viele arten und weisen wie ich gelernt habe mit UBound() oder mit $strings oder mit der korrekten anzahl (143) und jedes mal kommen dann andere sachen zu tage:

    Code
    For $a = 0 To $numbers2
        For $b = 0 To $numbers1
    ConsoleWrite("Dice: " & $numbers2[$b] & " ----------> " & " Number: " & $numbers1[$b] &@CRLF)
    Next
    Next

    entspricht: eine einzige zeile ...

    Code
    +>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+BREAK to Stop.
    Dice: 0 ---------->  Number: 102
    +>12:55:35 AutoIt3.exe ended.rc:0
    +>12:55:35 AutoIt3Wrapper Finished.

    UBound() ... mmh ... noch viel schlechter:

    Code
    For $a = 0 To UBound($numbers2) - 1
        For $b = 0 To UBound($numbers1) - 1
    ConsoleWrite("Dice: " & $numbers2[$b] & " ----------> " & " Number: " & $numbers1[$b] &@CRLF)
    Next
    Next

    extrem gekuerzt ... (insgesamt 20736 Zeilen ausgegeben):

    das beste war wirklich das es 20736 zeilen waren welches genau 144 x 144 entspricht. also offensichtlich mal wieder das problem vor dem bildschirm. mich hat allerdings die ausgabe von nur einer einzigen zeile gewundert, denn alle diese moeglichkeiten sind auf array seiten zu finden und scheinen zu funktionieren, nur eben nie so wirklich bei mir. mein bestes ergebnis, war das wo ich 144 anstelle von 143 angegeben hatte. ... im uebrigen bei der korrekten angabe von 143:

    Code
    For $a = 0 To 143
        For $b = 0 To 143
    ConsoleWrite("Dice: " & $numbers2[$b] & " ----------> " & " Number: " & $numbers1[$b] &@CRLF)
    Next
    Next

    waren es dann auch 20736 zeilen. ... overkill deluxe

    mein eigentlicher plan war es die random funktion einzusetzen und das noch mit einzubauen, aber soweit kam ich erst gar nicht mit den ausgaben der ConsoleWrite() funktion.

    Code
    ;$y = Random(0, 1, 1)
        ;MsgBox(0,"", $a & " --- " & $y & " 0 = Top / 1 = Bottom")

    ich habe glaube ich noch 30 andere fassungen probiert und nur eine for-to-next-schleife verwendet, dann kamen fehler wie $b ist nicht deklariert oder, oder, oder! auch habe ich probiert den wert von $a und/oder $b auf 1 zu setzen aber das brachte keinen grossen unterschied. wirklich. ich habe so viele variationen davon probiert, aber nur mit der angabe von zu vielen zeilen konnte ich das korrekte ergebnis erzielen. sehr seltsam

    also irgendwie ist es mir ein raetsel. und das was mich am meisten irritiert hat, war das wenn ich den string (array) im for loop angebe, dann kommt nur eine einzige zeile.


    nach dem ganzen experimenten kam ich dann irgendwann auf eine loesung, die zumindest keine fehlermeldung ausspuckte ... aber nur 99 Zeilen:

    Code
    For $a = 0 To $numbers2[$a]
        For $b = 0 To $numbers1[$b]
    ConsoleWrite("Dice: " & $numbers2[$b] & " ----------> " & " Number: " & $numbers1[$b] &@CRLF)
    Next
    Next

    wobei, eigentlich duerfte meiner meinung nach das nicht funktionieren, denn ich deklariere $a und verwende es gleichzeitig mit, welches nach meinem verstaendnis eigentlich ein fehler ausspucken sollte in sachen $a wird benutzt bevor es ueberhaupt deklariert ist, aber irgendwie tut es so. verstehen muss ich das nicht, oder? ... dabei fiel mir dann hinterher auf, dass zwar kein fehler kommt, aber es nur 99 zeilen ausspuckt und nicht die 144 zeilen die es eigentlich soll. also war das wohl auch nicht wirklich richtig.

    die For-To-Next-Schleife = das buch mit sieben siegeln! ... toll wenn man es kann, ein krampf wenn man nicht versteht warum etwas nicht stimmt bzw. wo man nach den fehlern suchen soll.

    der letzte und neueste versuch war:

    Code
    For $a = 0 To $numbers2[$a] - 1
        For $b = 0 To $numbers1[$b] - 1
    ConsoleWrite("Dice: " & $numbers2[$b] & " ----------> " & " Number: " & $numbers1[$b] &@CRLF)
    Next
    Next

    ergebnis: keine fehler aber nur 122 zeilen. what? wo kommen die anzahl der zeilen in der console her?

    na ja, alles sehr spannend. ... bestimmt auch noch spannender wenn man es kann.

    gruss

    bankesbusters

    ConsoleWrite("=====================>>> "&"About Me:"&" <<<=====================" & @CRLF)
    ConsoleWrite("Someday I will know how to do it but that day is not today!" & @CRLF)
    ConsoleWrite("===================>>> "&"bankesbusters"&" <<<===================" & @CRLF)