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
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
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 ###
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
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
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
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
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
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
(Code ist nicht groß gekürzt, wer will kann das ja ändern ^^)