Quiz-Maker + Quiz

  • Guten Abend liebe Community,

    für meine Homepage wollte ich eine kleine Quiz Runde erstellen.
    Dafür habe ich ein super PHP Script gefunden, das sich wunderbar einfügen lässt.
    Es ist von Werner Zenk auf http://www.homepage-total.de/php/quiz.php.

    Da man die Fragen und Antworten für das Script alle mühsam in eine
    TXT Datei schreiben musste, habe ich anfangs privat ein kleines Programm geschrieben,
    mit dem man ganz einfach Quiz's mit Fragen erstellen kann.

    Es ist leicht zu bedienen.
    ♦ Quiz erstellen
    ♦ Oben Frage eingeben.
    ♦ Minimal 2, maximal 5 Antworten eingeben (Nicht gegebene Antwortet bekommen ein "-", das ist wichtig)
    ♦ Unten noch die Nummer der richtigen Antwort eingeben
    ♦ Frage hinzufügen
    ♦ Und das ganze solang wiederhohlen bis man alle Fragen hat :)

    Auf dem Link weiter oben seht ihr schonmal wie das Quiz, bzw. die PHP aussieht.
    Werden nciht viele brauchen aber evtl. ein paar ;)

    Viel Spaß damit:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $FileOpen, $SaveAs = "", $QuestCount = 1, $Titel = "Quiz-Maker"

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Quiz-Maker", 600, 400, -1, -1)
    GUISetFont(9, 800, 0, "Arial")
    GUISetBkColor(0x99B4D1)
    $Label1 = GUICtrlCreateLabel("Frage:", 16, 8, 39, 19)
    $Input1 = GUICtrlCreateInput("", 16, 24, 562, 23)
    $Label2 = GUICtrlCreateLabel("Antwort 1:", 16, 80, 62, 15)
    $Input2 = GUICtrlCreateInput("", 16, 96, 273, 23)
    $Label3 = GUICtrlCreateLabel("Antwort 2:", 304, 80, 62, 15)
    $Input3 = GUICtrlCreateInput("", 304, 96, 273, 23)
    $Label4 = GUICtrlCreateLabel("Antwort 3:", 16, 144, 62, 15)
    $Input4 = GUICtrlCreateInput("", 16, 160, 273, 23)
    $Label5 = GUICtrlCreateLabel("Antwort 4:", 304, 144, 62, 15)
    $Input5 = GUICtrlCreateInput("", 304, 160, 273, 23)
    $Label6 = GUICtrlCreateLabel("Antwort 5:", 16, 208, 62, 15)
    $Input6 = GUICtrlCreateInput("", 16, 224, 273, 23)
    $Label7 = GUICtrlCreateLabel("Richtige Antwort ...", 16, 288, 110, 15)
    $Input7 = GUICtrlCreateInput("", 16, 304, 105, 23, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
    $Button1 = GUICtrlCreateButton("Quiz erstellen / laden", 16, 340, 131, 25)
    $Button2 = GUICtrlCreateButton("Frage hinzufügen", 152, 340, 131, 25)
    $Button3 = GUICtrlCreateButton("Alles löschen", 288, 340, 131, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    If FileExists ($FileOpen) Then
    FileClose ($FileOpen)
    EndIf
    Exit
    Case $Button1
    $SaveAs = FileSaveDialog ("Neues Quiz erstellen", @DesktopDir, "Textdokument (*.txt)", 2, "quizfragen.txt")
    _Create ($SaveAs)
    Case $Button2
    If StringIsSpace ($SaveAs) or $SaveAs = "" Then
    MsgBox (16, "Fehler", "Bitte erstellen Sie zunächst ein Quiz!")
    Else
    $Read1 = GUICtrlRead ($Input1)
    $Read2 = GUICtrlRead ($Input2)
    $Read3 = GUICtrlRead ($Input3)
    $Read4 = GUICtrlRead ($Input4)
    $Read5 = GUICtrlRead ($Input5)
    $Read6 = GUICtrlRead ($Input6)
    $Read7 = GUICtrlRead ($Input7)
    If StringIsSpace ($Read1) or $Read1 = "" Then
    MsgBox (16, "Fehler", "Bitte geben Sie eine Frage ein!")
    ElseIf StringIsSpace ($Read7) or $Read7 = "" Then
    MsgBox (16, "Fehler", "Bitte geben Sie die Nummer der richtigen Antwort an!")
    Else
    _QuestAdd ($Read1, $Read2, $Read3, $Read4, $Read5, $Read6, $Read7)
    $QuestCount = $QuestCount+1
    EndIf
    EndIf
    Case $Button3
    GUICtrlSetData ($Input1, "")
    GUICtrlSetData ($Input2, "")
    GUICtrlSetData ($Input3, "")
    GUICtrlSetData ($Input4, "")
    GUICtrlSetData ($Input5, "")
    GUICtrlSetData ($Input6, "")
    GUICtrlSetData ($Input7, "")
    EndSwitch
    WEnd

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

    Func _QuestAdd ($Quest, $Ans1, $Ans2, $Ans3, $Ans4, $Ans5, $RightAns)
    If StringIsSpace ($Ans1) or $Ans1 = "" Then $Ans1 = "-"
    If StringIsSpace ($Ans2) or $Ans2 = "" Then $Ans2 = "-"
    If StringIsSpace ($Ans3) or $Ans3 = "" Then $Ans3 = "-"
    If StringIsSpace ($Ans4) or $Ans4 = "" Then $Ans4 = "-"
    If StringIsSpace ($Ans5) or $Ans5 = "" Then $Ans5 = "-"
    FileWrite ($FileOpen, $QuestCount & "|" & $Quest & "|" & $Ans1 & "|" & $Ans2 & "|" & $Ans3 & "|" & $Ans4 & "|" & $Ans5 & "|" & $RightAns & "|" & @CRLF)
    GUICtrlSetData ($Input1, "")
    GUICtrlSetData ($Input2, "")
    GUICtrlSetData ($Input3, "")
    GUICtrlSetData ($Input4, "")
    GUICtrlSetData ($Input5, "")
    GUICtrlSetData ($Input6, "")
    GUICtrlSetData ($Input7, "")
    EndFunc

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

    Func _Create ($SaveName)
    If FileExists ($SaveName) Then
    $MsgBox = _MsgBox (1, 64, "Achtung", "Die Datei exestiert bereits" & @CRLF & "Möchten Sie die Datei überschreiben oder laden?", 330, 100)
    If $MsgBox = 2 Then
    _Load ($SaveName)
    MsgBox (64, "Geladen", "Sie können das Quiz nun weiter bearbeiten")
    ElseIf $MsgBox = 4 Then
    FileDelete ($SaveName)
    _CreateNew ($SaveName)
    EndIf
    Else
    _CreateNew ($SaveName)
    EndIf
    EndFunc

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

    Func _Load ($LoadName)
    $FileOpen = FileOpen ($LoadName, 0)
    $FileRead = FileRead ($FileOpen)
    $CountSplit = StringSplit ($FileRead, "|")
    $QuestCount = $CountSplit[$CountSplit[0]-8]+1
    FileClose ($FileOpen)
    $FileOpen = FileOpen ($LoadName, 1)
    EndFunc

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

    Func _CreateNew ($SaveName)
    $FileOpen = FileOpen ($SaveName, 1)
    $LinkSplit = StringSplit ($SaveName, "\")
    $NameSplit = StringSplit ($LinkSplit[$LinkSplit[0]], ".")
    WinSetTitle ($Form1, "", "Quiz-Maker - Quiz: " & $NameSplit[$NameSplit[0]-1])
    EndFunc

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

    Func _MsgBox ($Flag, $ExFlag, $Titel, $Text, $Width = 245, $Height = 200, $Color = "0xffffff")
    ;==> Auszug aus meiner _MsgBox UDF, deswegen etwas durcheinander...
    Local $iOnEventMode = Opt("GUIOnEventMode", 0)
    Local $Size = 7, $FontWidth = 700, $return, $PosX = $Height-25
    $MsgGUI = GUICreate ($Titel, $Width, $Height, -1, -1)
    WinSetOnTop ($MsgGUI, "", 1)
    GUISetBkColor ($Color)
    GUISetIcon ("User32.dll", -1)
    GUISetState (@SW_SHOW, $MsgGUI)
    $MsgText = GUICtrlCreateLabel ($Text, 60, 10, $Width-65, $Height-40)
    GUICtrlSetBkColor (-1, $Color)
    Switch $Flag
    Case 1
    $Ex1 = Execute (($Width-225)/4)
    $Ex2 = Execute (($Ex1*2)+75)
    $Ex3 = Execute (($Ex1*3)+(75*2))
    EndSwitch
    If $Flag = 1 Then
    $Button4 = GUICtrlCreateButton ("Quiz laden", $Ex1, $PosX, 75, 20)
    GUICtrlSetFont (-1, $Size, $FontWidth)
    $Button5 = GUICtrlCreateButton ("Überschreiben", $Ex2, $PosX, 75, 20)
    GUICtrlSetFont (-1, $Size, $FontWidth)
    $Button6 = GUICtrlCreateButton ("Abbrechen", $Ex3, $PosX, 75, 20)
    GUICtrlSetFont (-1, $Size, $FontWidth)
    While 1
    $Msg3 = GUIGetMsg ()
    Switch $msg3
    Case $Button4
    $return = 2
    ExitLoop
    Case $Button5
    $return = 4
    ExitLoop
    Case $Button6
    $return = 5
    ExitLoop
    Case -3
    $return = 5
    ExitLoop
    EndSwitch
    WEnd
    EndIf
    GUIDelete($MsgGUI)
    Return($return)
    EndFunc

    [/autoit]


    (Code ist nicht groß gekürzt, wer will kann das ja ändern ^^)