Zitat! Gute-Laune-Macher

  • Ich hab mal ein Programm gemacht was aus einer zitatdatenbank 10-20 Zitate anzeigt.

    Jede Variante eines Zitat!-Readers ist gerne willkommen. Jeder kann seine hier posten, und wir fusionieren das dann zu einem großen perfektem Zitat!-Reader, wo jeder einzeln in den Credits erwähnt wird. Übrigens das wichtigste ist, ein knapper Code!

    Variante von mir:

    Spoiler anzeigen
    [autoit]


    #Include <File.au3>
    ;by campweb
    $file = FileOpen("zitate.zit", 0)
    MsgBox(0, "Zitat! by campweb", "Willkommen bei Zitat!"&@crlf&@crlf&"Klicken Sie einfach auf OK, um das nächste Zitat zu lesen. Wenn das Programm meint es reicht für heute, wird es beendet."&@crlf&"Viel Spaß!")
    If $file = -1 Then
    MsgBox(0, "Error", "Zitatdatei ist gelöscht!")
    Exit
    EndIf

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

    While 1
    $rnd = Random(1, 1575, 1)
    $line = FileReadLine($file, $rnd)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Zitat! by campweb", $line)
    Wend

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

    FileClose($file)

    [/autoit]

    Variante von Nitrama:

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #include <Misc.au3>
    $dll = DllOpen("user32.dll")
    $file = FileOpen("zitate.zit", 0)
    $zeilen =_FileCountLines("zitate.zit")
    $rnd = Random(1, $zeilen, 1)
    $line = FileReadLine($file, $rnd)
    HotKeySet("{ESC}", "_Quit")
    While 1
    Sleep (10)
    If _IsPressed("01", $dll) Then
    _neu ()
    EndIf
    $pos = MouseGetPos()
    $pos[0] += 10
    $pos[1] += 10
    ToolTip($line, $pos[0] , $pos[1])
    WEnd

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

    Func _Quit()
    FileClose ($file)
    DllClose($dll)
    Exit

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

    EndFunc

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

    Func _neu ()
    $rnd = Random(1, $zeilen, 1)
    $line = FileReadLine($file, $rnd)
    EndFunc

    [/autoit]

    Variante von mireko:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    ;by campweb(edited by mireko)
    $file = FileOpen("zitate.zit", 0)
    MsgBox(0, "Zitat! by campweb(edited by mireko)", "Willkommen bei Zitat!" & @CRLF & @CRLF & "Klicken Sie einfach auf OK, um das nächste Zitat zu lesen. Wenn das Programm meint es reicht für heute, wird es beendet." & @CRLF & "Viel Spaß!")
    Do
    $zitatanzahl = InputBox("Zitate pro Seite", "Wie viele Zitate möchtest du auf einmal sehen? max.10")
    Until $zitatanzahl < 11
    If $file = -1 Then
    MsgBox(0, "Error", "Zitatdatei ist gelöscht!")
    Exit
    EndIf

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

    While 1
    $line = ""
    For $i = 1 To $zitatanzahl Step +1
    $rnd = Random(1, 1575, 1)
    $line &= FileReadLine($file, $rnd)
    $line &= @LF
    $line &= @LF
    If @error = -1 Then ExitLoop (2)
    Next
    $ant = MsgBox(1, "Zitat! by campweb(edited by mireko)", $line)

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

    If $ant = 2 Then
    MsgBox(0, "Ende", "ende")
    Exit
    EndIf
    WEnd
    FileClose($file)

    [/autoit]

    Die Zitatdatenbank ist im Anhang mit 1575 Zitaten, also bitte nicht misbrauchen, es war eine reine Fleißarbeit.

  • Du könntest es ein wenig verbessern, indem du die Anzahl der Zitate in der Txt ermittelst, und das Ergebnis davon als 2. Parameter der Random-Funtion angibst, so kann man auch weitere Zitate dazufügen. :D
    Faweyr

  • ich habe da ma was gemacht

    vllt gefällt euch

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #include <Misc.au3>
    $dll = DllOpen("user32.dll")
    $file = FileOpen("zitate.zit", 0)
    $zeilen =_FileCountLines("zitate.zit")
    $rnd = Random(1, $zeilen, 1)
    $line = FileReadLine($file, $rnd)
    HotKeySet("{ESC}", "_Quit")
    While 1
    Sleep (10)
    If _IsPressed("01", $dll) Then
    _neu ()
    EndIf
    $pos = MouseGetPos()
    $pos[0] += 10
    $pos[1] += 10
    ToolTip($line, $pos[0] , $pos[1])
    WEnd

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

    Func _Quit()
    FileClose ($file)
    DllClose($dll)
    Exit

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

    EndFunc

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

    Func _neu ()
    $rnd = Random(1, $zeilen, 1)
    $line = FileReadLine($file, $rnd)
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Nitrama (6. November 2010 um 22:38) aus folgendem Grund: in spoiler gepackt

  • Dial, das ist ein völlig unangebrachter inkompetenter, beleidigender und sprachlich höchst rudimentärer Kommentar, der es nicht würdig ist noch länger in diesem Thema Bestand zu haben, weshalb ich um die Entfernung durch die Moderatoren bitte.

  • Die Grundidee find ich eigentlich sehr gut, nur die Umsetzung könnte besser sein. ;):thumbup:

    Versuch das ganze einmal mit einer GUI zu machen, damit man die Zitate auch verwalten kann.


    Lol Noobs

    wenn ihr schon copy/pasted solltet ihr auch das "\" erweitern sonst fällts auf !!!

    Naja grundlegende Idee ist aber gut


    Und ich finde diesen Post ebenfalls sehr fehl am Platz.
    Jeder der ein Skript schreibt, und anderen zur Verfügung stellt, hat das recht konstruktive Kritik zu bekommen.
    Du du aber anscheinend unfähig bist konstruktive Kritik von dir zu geben, lass es bleiben oder erlern es.

    Und der einzige, der sich hier aufführt wie im Kindergarten, bist nur du.
    Unterlass bitte die Beleidigungen und versuch wie oben schon gesagt konstruktive Kritik abzugeben.

    MfG,
    H2112.

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • H2112, danke, jede Variante eines Zitat!-Readers ist gerne willkommen. Jeder kann seine hier posten, und wir fusionieren das dann zu einem großen perfektem Zitat!-Reader, wo jeder einzeln in den Credits erwähnt wird. Übrigens das wichtigste ist, ein knapper Code!

  • @campweb,

    mäßige mal deinen Umgangston...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • @Dial,
    das gilt für Dich auch.

    Wir sind hier doch nicht im Kindergarten ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • hallo wollte mich mal mit einem Sinnvollen Beitrag äussern.
    Hier ist meine Version.
    Leicht veränder(mehrere auf einmal anzeigen)

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    ;by campweb(edited by mireko)
    $file = FileOpen("zitate.zit", 0)
    MsgBox(0, "Zitat! by campweb(edited by mireko)", "Willkommen bei Zitat!" & @CRLF & @CRLF & "Klicken Sie einfach auf OK, um das nächste Zitat zu lesen. Wenn das Programm meint es reicht für heute, wird es beendet." & @CRLF & "Viel Spaß!")
    Do
    $zitatanzahl = InputBox("Zitate pro Seite", "Wie viele Zitate möchtest du auf einmal sehen? max.10")
    Until $zitatanzahl < 11
    If $file = -1 Then
    MsgBox(0, "Error", "Zitatdatei ist gelöscht!")
    Exit
    EndIf

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

    While 1
    $line = ""
    For $i = 1 To $zitatanzahl Step +1
    $rnd = Random(1, 1575, 1)
    $line &= FileReadLine($file, $rnd)
    $line &= @LF
    $line &= @LF
    If @error = -1 Then ExitLoop (2)
    Next
    $ant = MsgBox(1, "Zitat! by campweb(edited by mireko)", $line)

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

    If $ant = 2 Then
    MsgBox(0, "Ende", "ende")
    Exit
    EndIf
    WEnd
    FileClose($file)

    [/autoit]
  • @campweb:
    Mach bei den MsgBoxen die Flag auf 64, weil das "Kling" von der normalen macht mich Kirre :D

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • Hey,

    ich habe ma ne gui uns so gemacht und man kann jetzt zwischen Zitaten und Witzen auswählen.

    habs auch noch ma im anhang

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #Include <File.au3>
    #include <Misc.au3>
    $z = 0
    $w = 0
    $line = "linke Maus drücken drücken Bitte"
    HotKeySet("{ESC}", "_Quit")
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 401, 401, 280, 138)
    $Label1 = GUICtrlCreateLabel("Zitat Manager", 116, 24, 168, 36)
    GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
    $Neues_Zitat = GUICtrlCreateInput("Neues Zitat", 142, 120, 121, 21)
    $Button1 = GUICtrlCreateButton("Hinzufügen", 275, 118, 75, 25)
    $Checkbox1 = GUICtrlCreateCheckbox("Zitate", 104, 264, 57, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_LEFT))
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Checkbox2 = GUICtrlCreateCheckbox("Witze", 248, 264, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_LEFT))
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Hinzufügen", 275, 171, 75, 25)
    $Button3 = GUICtrlCreateButton("Los Gehts !", 163, 328, 75, 25)
    $Neuer_Witz = GUICtrlCreateInput("Neuer Witz", 142, 173, 121, 21)
    $Radio1 = GUICtrlCreateRadio("MsgBox", 112, 304, 65, 17)
    $Radio2 = GUICtrlCreateRadio("Tooltip", 224, 304, 65, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("und / oder", 167, 264, 64, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("oder", 184, 303, 32, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _zit_hinzufuegen ()

    Case $Button2
    _witz_hinzufuegen ()
    Case $Button3
    _test ()
    EndSwitch
    WEnd

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

    Func _test ()
    $w = 0
    $z = 0
    $Checkbox11 = GUICtrlRead($Checkbox1)
    $Checkbox22 = GUICtrlRead($Checkbox2)
    $Radio11 = GUICtrlRead($Radio1)
    $Radio22 = GUICtrlRead($Radio2)
    If $Checkbox11 = $GUI_CHECKED And $Checkbox22 = $GUI_CHECKED Then
    $z = 1
    $w = 1
    If $Radio11 = $GUI_CHECKED Then
    _MSgbox ()
    ElseIf $Radio22 = $GUI_CHECKED Then
    _Tooltip ()
    Else
    MsgBox (4096, "nichts angewählt", "Bitte wählen sie was sie ob sie in MsgBox oder ToolTip lesen möchten")
    EndIf
    ElseIf $Checkbox11 = $GUI_CHECKED Then
    $z = 1
    If $Radio11 = $GUI_CHECKED Then
    _MSgbox ()
    ElseIf $Radio22 = $GUI_CHECKED Then
    _Tooltip ()
    Else
    MsgBox (4096, "nichts angewählt", "Bitte wählen sie was sie ob sie in MsgBox oder ToolTip lesen möchten")
    EndIf
    ElseIf $Checkbox22 = $GUI_CHECKED Then
    $w = 1
    If $Radio11 = $GUI_CHECKED Then
    _MSgbox ()
    ElseIf $Radio22 = $GUI_CHECKED Then
    _Tooltip ()
    Else
    MsgBox (4096, "nichts angewählt", "Bitte wählen sie was sie ob sie in MsgBox oder ToolTip lesen möchten")
    EndIf
    Else
    MsgBox (4096, "nichts angewählt", "Bitte wählen sie was sie ob sie Zitate und/oder Witze lesen möchten")
    EndIf
    EndFunc

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

    Func _Tooltip () ; skript by Nitrama
    GUIDelete ($Form1)

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

    $dll = DllOpen("user32.dll")
    While 1
    Sleep (10)
    If _IsPressed("01", $dll) Then
    _neu ()
    EndIf
    $pos = MouseGetPos()
    $pos[0] += 10
    $pos[1] += 10
    ToolTip($line, $pos[0] , $pos[1])
    WEnd
    EndFunc

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

    Func _zit_hinzufuegen ()
    $zit = GUICtrlRead($Neues_Zitat)
    $file1 = FileOpen ("zitate.zit",1)
    $iLine = _FileCountLines("zitate.zit")
    _FileWriteToLine("zitate.zit", $iLine, $zit )
    FileClose ($file1)
    EndFunc

    Func _witz_hinzufuegen ()
    $zit = GUICtrlRead($Neues_Zitat)
    $file2 = FileOpen ("witze.zit",1)
    $iLine = _FileCountLines("witze.zit")
    _FileWriteToLine("witze.zit", $iLine, $zit )
    FileClose ($file2)
    EndFunc

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

    Func _MSgbox (); -skript by campweb "für skript angepasst"
    GUIDelete ($Form1)
    $file1 = FileOpen ("zitate.zit" , 0)
    $file2 = FileOpen ("witze.zit" , 0)
    $zeilen1 = _FileCountLines("zitate.zit")
    $zeilen1 += 10
    $zeilen2 = _FileCountLines("witze.zit")
    $zeilen2 += 10
    MsgBox(4096, "Zitat! by campweb", "Willkommen bei Zitat!"&@crlf&@crlf&"Klicken Sie einfach auf OK, um das nächste Zitat zu lesen. Wenn das Programm meint es reicht für heute, wird es beendet."&@crlf&"Viel Spaß!")
    While 1
    if $w == 1 and $z == 1 then
    $filenumber = Random (1, 2 ,1)
    If $filenumber == 1 Then

    $rnd = Random(1, $zeilen1, 1)
    $line = FileReadLine($file1, $rnd)
    If @error = -1 Then Exit
    MsgBox(64, "Zitat! by campweb", $line)
    Else
    $rnd = Random(1, $zeilen2, 1)
    $line = FileReadLine($file2, $rnd)
    If @error = -1 Then Exit
    MsgBox(4096, "Witze! by ...", $line)
    EndIf

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

    ElseIf $w == 1 Then
    $rnd = Random(1, $zeilen2, 1)
    $line = FileReadLine($file2, $rnd)
    If @error = -1 Then Exit
    MsgBox(64, "Witze! by ...", $line)

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

    ElseIf $z == 1 Then
    $rnd = Random(1, $zeilen1, 1)
    $line = FileReadLine($file1, $rnd)
    If @error = -1 Then Exit
    MsgBox(64, "Zitat! by campweb", $line)
    EndIf
    Wend
    EndFunc

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

    Func _Quit()
    Exit
    EndFunc

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

    Func _neu ()
    $file1 = FileOpen ("zitate.zit" , 0)
    $file2 = FileOpen ("witze.zit" , 0)
    $zeilen1 = _FileCountLines("zitate.zit")
    $zeilen2 = _FileCountLines("witze.zit")
    if $w == 1 and $z == 1 then
    $filenumber = Random (1, 2 ,1)
    If $filenumber == 1 Then
    $rnd = Random(1, $zeilen1, 1)
    $line = FileReadLine($file1, $rnd)
    Else
    $rnd = Random(1, $zeilen2, 1)
    $line = FileReadLine($file2, $rnd)
    EndIf
    ElseIf $w == 1 Then
    $rnd = Random(1, $zeilen2, 1)
    $line = FileReadLine($file2, $rnd)
    ElseIf $z == 1 Then
    $rnd = Random(1, $zeilen1, 1)
    $line = FileReadLine($file1, $rnd)

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

    EndIf
    EndFunc

    [/autoit]

    Gruß Nitrama

    PS: ich weiß das mein code ein bisschen unübersichtlich ist ^^

    PSS: schönes Wochenende noch ^^

  • Der Code ist wirklich undurchsichtig, und eigentlich sollt es kein GUI haben. Dein erster Vorschlag war schon ziehmlich gut.