Kleines Problem

  • Hallo, als erstes wollt ich sagen: AutoIt ist das erste was ich probiert habe, ich kenne mich sonst mit keinen Programmen aus und mit AutoIt selbst auch nich(aber bin am lernen^^)

    So mein Problem ist das:

    Ich möchte einen Befehl der buchstaben von a-z in einer 2ercombo schreibt(z.B. dk)

    Das Probelm ist, ich weiß nich wie ich einen random befehl mit buchstaben mache und das er 2zufällige nehmen soll und möglichst nicht doppelt, also 2mal zb kk schreibt :P

    Freue mich über eure Hilfe :)

  • Ich verstehe Dein Problem nicht so ganz. Wie viele dieser 2er Komibinationen brauchst Du denn?

    Ansonsten gibt es die ASCII-Tabelle (65-90 entsprechen A-Z) und mit z.B. Chr(Random(65, 90, 1)) bekommst Du einen zufälligen Buchstaben.

    Möglichst alle xD, und es soll ja nicht nur 1 buchstabe sein sondern 2 und es soll nicht vorkommen das zb 1) bb und bei 280)wieder bb rauskommt

    • Offizieller Beitrag

    @CRLF ist der Zeilenumbruch unter Windows.

    Xenos Script gibt alle Kombinationen in der Konsole aus. Allerdings nicht per Zufall.

    Das hier ergibt alle Kombinationen in zufälliger Reihenfolge aus:

    [autoit]


    #include <Array.au3>
    Global $aArray[676][2]
    For $y = 65 To 90
    For $i = 65 To 90
    $aArray[($y-65)*26+($i-65)][0] = Chr($y) & Chr($i)
    $aArray[($y-65)*26+($i-65)][1] = Random(10000, 99999, 1)
    Next
    Next
    _ArraySort($aArray, 0, 0, 0, 1)
    _ArrayDisplay($aArray)

    [/autoit]

    Deine Aufgabe ist es jetzt, das in ein Combofeld einer GUI zu übertragen. :)

  • ok Xenos war ja eig leicht verständlich wusste halt das hintergrundwissen nich, aber deins check ich ma gar nicht :P

    • Offizieller Beitrag

    Ok, weil Du noch neu bist und ich gerade etwas Zeit habe:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Global $aArray[676][2], $letter
    For $y = 65 To 90
    For $i = 65 To 90
    $aArray[($y-65)*26+($i-65)][0] = Chr($y) & Chr($i)
    $aArray[($y-65)*26+($i-65)][1] = Random(10000, 99999, 1)
    Next
    Next
    _ArraySort($aArray, 0, 0, 0, 1)
    ; _ArrayDisplay($aArray)

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

    For $i = 0 To 675
    $letter &= $aArray[$i][0] & "|"
    Next
    $letter = StringTrimRight($letter, 1)

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

    GUICreate("My GUI combo")

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

    GUICtrlCreateCombo("", 10, 10, 50, 20)
    GUICtrlSetData(-1, $letter, $aArray[0][0])

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]

    Die Kombinationen werden in ein 2D-Array gespeichert zusammen mit einer zufälligen Zahl für jeden Eintrag. Dann wird das Array anhand der Zufallszahl sortiert, sodass sich auch eine zufällige Folge für die Buchstaben-Kombinationen ergibt. Anschließend wird das Array in einen String konvertiert mit "|" als Trennzeichen (wird für ein Combofeld so benötigt) und dem Combofeld übergeben.

  • Vielen Dank für die großartige Hilfe von euch :) ich konnte zwar im Endeffekt nichts mit deinem Array anfangen, aber vielleicht versteh ich es ja bald :P