per zufall 1 von 10 variablen anzeigen

  • also ich habe 10 variablen in denen jewils hallo hello bonjour und andere stehen
    und wenn man auf den button klickt soll per zufall 1 von den 10 wortern in der inputbox angezeigt werden
    mein problem ist wie kann ich machen das er per zufall 1 aussucht

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    $wort1 = FileReadLine("Config.ini",1)
    $wort2 = FileReadLine("Config.ini",2)
    $wort3 = FileReadLine("Config.ini",3)
    $wort4 = FileReadLine("Config.ini",4)
    $wort5 = FileReadLine("Config.ini",5)
    $wort6 = FileReadLine("Config.ini",6)
    $wort7 = FileReadLine("Config.ini",7)
    $wort8 = FileReadLine("Config.ini",8)
    $wort9 = FileReadLine("Config.ini",9)
    $wort10 = FileReadLine("Config.ini",10)
    GUICreate("Hallo ...", 200, 101, 0, 0, BitOR($WS_DLGFRAME,$WS_POPUP,$WS_CLIPSIBLINGS))
    GUISetBkColor(0x000000)
    GUICtrlCreateInput("", 0, 32, 200, 21)
    GUICtrlCreateLabel("Hallo...", 8, 0, 188, 29)
    GUICtrlSetFont(-1, 15, 400, 0, "Digital")
    GUICtrlSetColor(-1, 0x00FA00)
    $hi = GUICtrlCreateButton("Hi", 0, 52, 200, 17, 0)
    $About = GUICtrlCreateButton("About", 0, 68, 200, 17, 0)
    $eXit = GUICtrlCreateButton("eXit", 0, 84, 200, 17, 0)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hi

    Case $About

    Case $eXit
    Exit
    EndSwitch
    WEnd

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

    Einmal editiert, zuletzt von Masterfreak0815 (6. August 2008 um 11:52)

    • Offizieller Beitrag
    [autoit]

    $wort1 = FileReadLine("Config.ini",1)

    [/autoit]

    Autsch... verwende doch lieber eine richtige INI-Datei, dann kannst du auch die Sektion in einem Schritt einlesen und deine unterschiedlichen Texte liegen sofort in einem Array. Aus diesem kannst du dann zufällige Werte (Funktion Random) ausgeben lassen.

  • die ini habe ich nicht erstelt die hat ein kolege gemacht ich schreibe ihm nur das program dazu

    • Offizieller Beitrag

    Also, wenn Du Einfluß auf die Inidatei hast, dann verwende z.B. folgendes Format (Dateiname="Config.ini"):

    Spoiler anzeigen


    [Woerter]
    1=hallo
    2=hello
    3=bonjour
    4=hi
    5=tach
    6=moin
    7=grüß gott
    8=guten tag
    9=guten abend
    10=blabla

    Dann kannst Du das Script so gestalten:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    $aWort = IniReadSection(@ScriptDir & "\Config.ini", "Woerter")
    If @error Then Exit MsgBox(0, "Hallo...", "Ini-Datei konnte nicht gelesen werden!")
    GUICreate("Hallo ...", 200, 101, 0, 0, BitOR($WS_DLGFRAME,$WS_POPUP,$WS_CLIPSIBLINGS))
    GUISetBkColor(0x000000)
    GUICtrlCreateInput("", 0, 32, 200, 21)
    $Label = GUICtrlCreateLabel("Hallo...", 8, 0, 188, 29)
    GUICtrlSetFont(-1, 15, 400, 0, "Digital")
    GUICtrlSetColor(-1, 0x00FA00)
    $hi = GUICtrlCreateButton("Hi", 0, 52, 200, 17, 0)
    $About = GUICtrlCreateButton("About", 0, 68, 200, 17, 0)
    $eXit = GUICtrlCreateButton("eXit", 0, 84, 200, 17, 0)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hi
    $random = Random(1, $aWort[0][0], 1)
    GUICtrlSetData($Label, $aWort[$random][1])
    Case $About

    Case $eXit
    Exit
    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    die hat ein kolege gemacht ich schreibe ihm nur das program dazu

    Das ist aber wenig sinnvoll. Da die INI programmrelevanten Inhalt hat, kann auch nur der sie erstellen, der die Inhalte im Programm verarbeitet.
    Aber du kannst natürlich auch so vorgehen:

    [autoit]

    Global $arWorte[10]
    For $i = 1 To 10
    $arWorte[$i -1] = FileReadLine("Config.ini",$i)
    Next

    [/autoit]


    Dann hast du den Inhalt der INI im Array und kannst nun per Random ein Element wählen.