Ich hab ihn jetzt völlig neu geschrieben.
Neu ist: Imperativ, Passiv, Konjunktiv 1 & 2, Konjunktiv Passiv 1 & 2, Gui
Einfach ein regelmäßiges Verb in den StringGadget eingeben und Konjugieren drücken
Das Verb wird dann in allen Zeiten konjugiert
Code: Alles auswählen
;/
;/Konjugierer
;/(C) by Leonard Dahlmann
;/Website: http://selobrain.se.funpic.de
;/
;{-Konstanten, Strukturen etc.
Enumeration ;Fenster
#Window_Main
EndEnumeration
Enumeration ;Gadget
#Gadget_String_Verb
#Gadget_Button_Submit
#Gadget_ListView_Result
#Gadget_Button_ClipBoard
#Gadget_Button_File
EndEnumeration
Enumeration ;Zeiten
#Futur2
#Futur1
#Praesens
#Praet
#Perfekt
#PP
EndEnumeration
Enumeration ;Modi
#Indi
#Kon1
#Kon2
#Pass
#PK1
#PK2
EndEnumeration
Enumeration ;Menü
#Menu_Submit
EndEnumeration
Structure person
p.s[7] ;Alle 6 Personen
EndStructure
Structure modus
m.person[6] ;Indikativ,Konjunktiv 1 & 2, Passiv
EndStructure
Structure verb
Partizip.s[2] ;Partizipien
Zeit.modus[6] ;Alle 6 Zeiten
Imperativ.s[2] ;Imperativ
EndStructure
Dim Personen.s(5)
Dim Zeiten.s(5)
Dim Modi.s(5)
;}
;{-Konjugierer Init
Global v.verb,werden.verb,haben.verb,seien.verb
werden\Zeit[#Praesens]\m[#Indi]\p[0] = "werde"
werden\Zeit[#Praesens]\m[#Indi]\p[1] = "wirst"
werden\Zeit[#Praesens]\m[#Indi]\p[2] = "wird"
werden\Zeit[#Praesens]\m[#Indi]\p[3] = "werden"
werden\Zeit[#Praesens]\m[#Indi]\p[4] = "werdet"
werden\Zeit[#Praesens]\m[#Indi]\p[5] = "werden"
werden\Zeit[#Praesens]\m[#Kon2]\p[0] = "würde"
werden\Zeit[#Praesens]\m[#Kon2]\p[1] = "würdest"
werden\Zeit[#Praesens]\m[#Kon2]\p[2] = "würde"
werden\Zeit[#Praesens]\m[#Kon2]\p[3] = "würden"
werden\Zeit[#Praesens]\m[#Kon2]\p[4] = "würdet"
werden\Zeit[#Praesens]\m[#Kon2]\p[5] = "würden"
werden\Zeit[#Praesens]\m[#Kon1]\p[0] = "werde"
werden\Zeit[#Praesens]\m[#Kon1]\p[1] = "werdest"
werden\Zeit[#Praesens]\m[#Kon1]\p[2] = "werde"
werden\Zeit[#Praesens]\m[#Kon1]\p[3] = "werden"
werden\Zeit[#Praesens]\m[#Kon1]\p[4] = "werdet"
werden\Zeit[#Praesens]\m[#Kon1]\p[5] = "werden"
werden\Zeit[#Praet]\m[#Indi]\p[0] = "wurde"
werden\Zeit[#Praet]\m[#Indi]\p[1] = "wurdest"
werden\Zeit[#Praet]\m[#Indi]\p[2] = "wurde"
werden\Zeit[#Praet]\m[#Indi]\p[3] = "wurden"
werden\Zeit[#Praet]\m[#Indi]\p[4] = "wurdet"
werden\Zeit[#Praet]\m[#Indi]\p[5] = "wurden"
haben\Zeit[#Praesens]\m[#Indi]\p[0] = "habe"
haben\Zeit[#Praesens]\m[#Indi]\p[1] = "hast"
haben\Zeit[#Praesens]\m[#Indi]\p[2] = "hat"
haben\Zeit[#Praesens]\m[#Indi]\p[3] = "haben"
haben\Zeit[#Praesens]\m[#Indi]\p[4] = "habt"
haben\Zeit[#Praesens]\m[#Indi]\p[5] = "haben"
haben\Zeit[#Praesens]\m[#Kon2]\p[0] = "hätte"
haben\Zeit[#Praesens]\m[#Kon2]\p[1] = "hättest"
haben\Zeit[#Praesens]\m[#Kon2]\p[2] = "hätte"
haben\Zeit[#Praesens]\m[#Kon2]\p[3] = "hätten"
haben\Zeit[#Praesens]\m[#Kon2]\p[4] = "hättet"
haben\Zeit[#Praesens]\m[#Kon2]\p[5] = "hätten"
haben\Zeit[#Praesens]\m[#Kon1]\p[0] = "habe"
haben\Zeit[#Praesens]\m[#Kon1]\p[1] = "habest"
haben\Zeit[#Praesens]\m[#Kon1]\p[2] = "habe"
haben\Zeit[#Praesens]\m[#Kon1]\p[3] = "haben"
haben\Zeit[#Praesens]\m[#Kon1]\p[4] = "habt"
haben\Zeit[#Praesens]\m[#Kon1]\p[5] = "haben"
haben\Zeit[#Praet]\m[#Indi]\p[0] = "hatte"
haben\Zeit[#Praet]\m[#Indi]\p[1] = "hattest"
haben\Zeit[#Praet]\m[#Indi]\p[2] = "hatte"
haben\Zeit[#Praet]\m[#Indi]\p[3] = "hatten"
haben\Zeit[#Praet]\m[#Indi]\p[4] = "hattet"
haben\Zeit[#Praet]\m[#Indi]\p[5] = "hatten"
seien\Zeit[#Praesens]\m[#Indi]\p[0] = "bin"
seien\Zeit[#Praesens]\m[#Indi]\p[1] = "bist"
seien\Zeit[#Praesens]\m[#Indi]\p[2] = "ist"
seien\Zeit[#Praesens]\m[#Indi]\p[3] = "sind"
seien\Zeit[#Praesens]\m[#Indi]\p[4] = "seid"
seien\Zeit[#Praesens]\m[#Indi]\p[5] = "sind"
seien\Zeit[#Praesens]\m[#Kon1]\p[0] = "sei"
seien\Zeit[#Praesens]\m[#Kon1]\p[1] = "seist"
seien\Zeit[#Praesens]\m[#Kon1]\p[2] = "sei"
seien\Zeit[#Praesens]\m[#Kon1]\p[3] = "seien"
seien\Zeit[#Praesens]\m[#Kon1]\p[4] = "seid"
seien\Zeit[#Praesens]\m[#Kon1]\p[5] = "seien"
seien\Zeit[#Praesens]\m[#Kon2]\p[0] = "wär"
seien\Zeit[#Praesens]\m[#Kon2]\p[1] = "wärst"
seien\Zeit[#Praesens]\m[#Kon2]\p[2] = "wär"
seien\Zeit[#Praesens]\m[#Kon2]\p[3] = "wären"
seien\Zeit[#Praesens]\m[#Kon2]\p[4] = "wärt"
seien\Zeit[#Praesens]\m[#Kon2]\p[5] = "wären"
seien\Zeit[#Praet]\m[#Indi]\p[0] = "war"
seien\Zeit[#Praet]\m[#Indi]\p[1] = "warst"
seien\Zeit[#Praet]\m[#Indi]\p[2] = "war"
seien\Zeit[#Praet]\m[#Indi]\p[3] = "waren"
seien\Zeit[#Praet]\m[#Indi]\p[4] = "wart"
seien\Zeit[#Praet]\m[#Indi]\p[5] = "waren"
Personen(0) = "Ich"
Personen(1) = "Du"
Personen(2) = "Er/Sie/Es"
Personen(3) = "Wir"
Personen(4) = "Ihr"
Personen(5) = "Sie"
Zeiten(0) = "Futur II"
Zeiten(1) = "Futur I"
Zeiten(2) = "Praesens"
Zeiten(3) = "Praeteritum"
Zeiten(4) = "Perfekt"
Zeiten(5) = "Plusguamperfekt"
Modi(0) = "Indikativ"
Modi(1) = "Konjunktiv 1"
Modi(2) = "Konjunktiv 2"
Modi(3) = "Passiv"
Modi(4) = "Konjunktiv 1 Passiv"
Modi(5) = "Konjunktiv 2 Passiv"
;}
;{-Fenster
hWnd = OpenWindow(#Window_Main,0,0,500,400,#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget,"Konjugierer")
CreateGadgetList(hWnd)
StringGadget(#Gadget_String_Verb,0,0,0,0,"kaufen")
ButtonGadget(#Gadget_Button_Submit,0,0,0,0,"Konjugieren")
ListViewGadget(#Gadget_ListView_Result,0,0,0,0)
ButtonGadget(#Gadget_Button_ClipBoard,0,0,0,0,"In Zwischenablage ablegen")
ButtonGadget(#Gadget_Button_File,0,0,0,0,"In Datei speichern")
SendMessage_(hWnd,#WM_SIZE,0,0)
SetGadgetFont(#Gadget_ListView_Result,LoadFont(0,"courier",10))
AddKeyboardShortcut(#Window_Main,#PB_Shortcut_Return,#Menu_Submit)
;}
;{-Proceduren
Procedure add(string$)
AddGadgetItem(#Gadget_ListView_Result,-1,string$)
EndProcedure
Procedure konjugieren(s.s)
;/Konjugieren
l = Len(s)
;-Partizipien
;Partizip I
v\Partizip[0] = s + "d"
;Partizip II
v\Partizip[1] = "ge" + Mid(s,0,l-2) + "t"
;-Präsens
;Indikativ
v\Zeit[#Praesens]\m[#Indi]\p[0] = Mid(s,0,l-1)
v\Zeit[#Praesens]\m[#Indi]\p[1] = Mid(s,0,l-2) + "st"
v\Zeit[#Praesens]\m[#Indi]\p[2] = Mid(s,0,l-2) + "t"
v\Zeit[#Praesens]\m[#Indi]\p[3] = s
v\Zeit[#Praesens]\m[#Indi]\p[4] = Mid(s,0,l-2) + "t"
v\Zeit[#Praesens]\m[#Indi]\p[5] = s
;Passiv
For i = 0 To 5
v\Zeit[#Praesens]\m[#Pass]\p[i] = werden\Zeit[#Praesens]\m[#Indi]\p[i] + " " + v\Partizip[1]
Next
;Konjunktiv 2
For i = 0 To 5
v\Zeit[#Praesens]\m[#Kon2]\p[i] = werden\Zeit[#Praesens]\m[#Kon2]\p[i] + " " + s
Next
;Konjunktiv 1
v\Zeit[#Praesens]\m[#Kon1]\p[0] = Mid(s,0,l-1)
v\Zeit[#Praesens]\m[#Kon1]\p[1] = Mid(s,0,l-1) + "st"
v\Zeit[#Praesens]\m[#Kon1]\p[2] = Mid(s,0,l-1)
v\Zeit[#Praesens]\m[#Kon1]\p[3] = s
v\Zeit[#Praesens]\m[#Kon1]\p[4] = Mid(s,0,l-1) + "t"
v\Zeit[#Praesens]\m[#Kon1]\p[5] = s
;Passiv Konjunktiv 2
For i = 0 To 5
v\Zeit[#Praesens]\m[#PK1]\p[i] = werden\Zeit[#Praesens]\m[#Kon1]\p[i] + " " + v\Partizip[1]
Next
;Passiv Konjunktiv 2
For i = 0 To 5
v\Zeit[#Praesens]\m[#PK2]\p[i] = werden\Zeit[#Praesens]\m[#Kon2]\p[i] + " " + v\Partizip[1] + " (werden)"
Next
;-Praeteritum
;Indikativ
v\Zeit[#Praet]\m[#Indi]\p[0] = Mid(s,0,l-2) + "te"
v\Zeit[#Praet]\m[#Indi]\p[1] = Mid(s,0,l-2) + "test"
v\Zeit[#Praet]\m[#Indi]\p[2] = Mid(s,0,l-2) + "te"
v\Zeit[#Praet]\m[#Indi]\p[3] = Mid(s,0,l-2) + "ten"
v\Zeit[#Praet]\m[#Indi]\p[4] = Mid(s,0,l-2) + "tet"
v\Zeit[#Praet]\m[#Indi]\p[5] = Mid(s,0,l-2) + "ten"
;Passiv
For i = 0 To 5
v\Zeit[#Praet]\m[#Pass]\p[i] = werden\Zeit[#Praet]\m[#Indi]\p[i] + " " + v\Partizip[1]
Next
;-Futur I
;Indikativ
For i = 0 To 5
v\Zeit[#Futur1]\m[#Indi]\p[i] = werden\Zeit[#Praesens]\m[#Indi]\p[i] + " " + s
Next
;Passiv
For i = 0 To 5
v\Zeit[#Futur1]\m[#Pass]\p[i] = werden\Zeit[#Praesens]\m[#Indi]\p[i] + " " + v\Partizip[1] + " werden"
Next
;Konjunktiv 2 (lol keine ahnung obs das überhaupt gibt xD)
For i = 0 To 5
v\Zeit[#Futur1]\m[#Kon1]\p[i] = werden\Zeit[#Praesens]\m[#Kon2]\p[i] + " " + s + " werden"
Next
;-Futur II
;Indikativ
For i = 0 To 5
v\Zeit[#Futur2]\m[#Indi]\p[i] = werden\Zeit[#Praesens]\m[#Indi]\p[i] + " " + v\Partizip[1] + " haben"
Next
;Passiv
For i = 0 To 5
v\Zeit[#Futur2]\m[#Pass]\p[i] = werden\Zeit[#Praesens]\m[#Indi]\p[i] + " " + v\Partizip[1] + " worden sein"
Next
;Konjunktiv 2 ( o____O )
; For i = 0 To 5
; v\Zeit[#Futur2]\m[#Kon2]\p[i] = werden\Zeit[#Praesens]\m[#Kon2]\p[i]
; Next
;-Perfekt
;Indikativ
For i = 0 To 5
v\Zeit[#Perfekt]\m[#Indi]\p[i] = haben\Zeit[#Praesens]\m[#Indi]\p[i] + " " + v\Partizip[1]
Next
;Passiv
For i = 0 To 5
v\Zeit[#Perfekt]\m[#Pass]\p[i] = seien\Zeit[#Praesens]\m[#Indi]\p[i] + " " + v\Partizip[1] + " worden"
Next
;Konjunktiv 1
For i = 0 To 5
v\Zeit[#Perfekt]\m[#Kon1]\p[i] = haben\Zeit[#Praesens]\m[#Kon1]\p[i] + " " + v\Partizip[1]
Next
;Passiv Konjunktiv 1
For i = 0 To 5
v\Zeit[#Perfekt]\m[#PK1]\p[i] = seien\Zeit[#Praesens]\m[#Kon1]\p[i] + " " + v\Partizip[1] + " worden"
Next
;-Plusguamperfekt
;Indikativ
For i = 0 To 5
v\Zeit[#PP]\m[#Indi]\p[i] = haben\Zeit[#Praet]\m[#Indi]\p[i] + " " + v\Partizip[1]
Next
;Passiv
For i = 0 To 5
v\Zeit[#PP]\m[#Pass]\p[i] = seien\Zeit[#Praet]\m[#Indi]\p[i] + " " + v\Partizip[1] + " worden"
Next
;Konjunktiv 2
For i = 0 To 5
v\Zeit[#PP]\m[#Kon2]\p[i] = haben\Zeit[#Praesens]\m[#Kon2]\p[i] + " " + v\Partizip[1]
Next
;Passiv Konjunktiv 2
For i = 0 To 5
v\Zeit[#PP]\m[#PK2]\p[i] = seien\Zeit[#Praesens]\m[#Kon2]\p[i] + " " + v\Partizip[1] + " worden"
Next
;-Imperativ
v\Imperativ[0] = Mid(s,0,l-1) + "!"
v\Imperativ[1] = Mid(s,0,l-2) + "t!"
;/Ausgeben
add("Infinitiv: "+s)
add("Partizip I: "+v\Partizip[0])
add("Partizip II: "+v\Partizip[1])
add("========================================================")
For i = 5 To 0 Step - 1
add(Zeiten(i))
add("========================================================")
For k = 0 To 5
If v\Zeit[i]\m[k]\p[0] = "" : Continue : EndIf
add("<<"+Modi(k)+">>")
For l = 0 To 5
add(Str(l+1)+": "+Personen(l)+" "+v\Zeit[i]\m[k]\p[l])
Next
add("--------------------------------------------------------")
Next
add("========================================================")
Next
add("Imperativ")
add("========================================================")
add(v\Imperativ[0]+" (Einzahl)")
add(v\Imperativ[1]+" (Mehrzahl)")
EndProcedure
;}
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Gadget_Button_Submit
ClearGadgetItemList(#Gadget_ListView_Result)
konjugieren(GetGadgetText(#Gadget_String_Verb))
SetFocus_(GadgetID(#Gadget_String_Verb))
Case #Gadget_Button_ClipBoard
str$ = ""
For i = 0 To CountGadgetItems(#Gadget_ListView_Result) - 1
str$ + GetGadgetItemText(#Gadget_ListView_Result,i,0)
str$ + #CRLF$
Next
SetClipboardText(str$)
EndSelect
Case #PB_Event_Menu
Select EventMenuID()
Case #Menu_Submit
ClearGadgetItemList(#Gadget_ListView_Result)
konjugieren(GetGadgetText(#Gadget_String_Verb))
SetFocus_(GadgetID(#Gadget_String_Verb))
EndSelect
Case #PB_Event_SizeWindow
ww = WindowWidth()
wh = WindowHeight()
ResizeGadget(#Gadget_String_Verb,10,10,WindowWidth()-150,20)
ResizeGadget(#Gadget_Button_Submit,WindowWidth()-130,10,120,20)
ResizeGadget(#Gadget_ListView_Result,10,40,WindowWidth()-20,WindowHeight()-80)
ResizeGadget(#Gadget_Button_ClipBoard,10,WindowHeight()-30,WindowWidth()-20,20)
;ResizeGadget(#Gadget_Button_File,WindowWidth()/2+5,WindowHeight()-30,WindowWidth()/2-15,20)
SetFocus_(GadgetID(#Gadget_String_Verb))
EndSelect
Until Quit = #True
End