Ich hab nen RIESEN Problem, Ich programmiere gerade einen Vokabeltrainer (vokabel lern programm :)]
überall wo in dem Script while steht (ich mal das ein oder andere nicht extrem wichtige weggenommen) meldet SCITE error in expression
ich weiß nicht mehr weiter , alle whiles sind korrekt geschrieben und durch ein WEND auch wieder beendet, wieso kommt aber immer Fehler in expression.
(ja ich weiß dass das schließen der While nichts mit dem error zu tun hat
)
While, error in expression
-
- [ gelöst ]
-
Sundown -
4. September 2010 um 12:12 -
Geschlossen -
Erledigt
-
-
Bitte mal den Quellcode posten.
Dann ist die Problemfrage nicht zu abstrakt.
-
Nen Auszug der While-Schleife würde das Raten ersparen.
MfG
Der_Doc -
hmm, also soll ich wirklich 141 zeilen code posten? die while schleife geht nämlich von fast ganz oben (unter includes) bis zum Ende, die ist da weil ich noch nen zurückbutton und ein zurück zum start usw machen möchte, aber nagut ich poste hier mal den Code ( ich weiß nicht ob sonns noch iwo fehler sind)
[autoit]
[/autoit]
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
#include <ButtonConstants.au3>
While ;1 offen
GUICreate("Vokabeltrainer",800,500)
GuiCtrlCreateLabel("Wählen Sie die Sprache der neuen Vokabeln aus", 10,10)
$Language = GUICtrlCreateCombo("Englisch", 10, 30,100,-1, $ES_READONLY & $CBS_DROPDOWNLIST )
GUICtrlSetData(-1,"Latein|Andere")
$check = GUICtrlCreateButton("Ok",120,30,40,20)
GUISetState()
While ;2offen
$msg=GUIGetMsg()
Select ;1offen
Case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Setup", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
ExitLoop
EndSelect ;0 offen
WEnd ;1 offen
$selectLang = GUICtrlRead($language)
$selectLang = GUICtrlRead($language)
Select ;1 offen
Case $selectlang = "englisch"
GUIDelete()
;GUI für die Eingabe Englischer Wörter wird erstellt
GUICreate("Vokabeltrainer", 800, 500)
GUICtrlCreateLabel("Wählen sie die aktuelle Unit aus", 10, 10)
$defaultunit = IniRead("C:\Dokumente und Einstellungen\toka\Desktop\Voktrainer\programme\User_Edit.ini", "Englisch", "Unit", "1")
$Unit = GUICtrlCreateInput($defaultunit, 10, 30, 40, 20)
GUICtrlCreateUpdown($unit)
$check = GUICtrlCreateButton("Bestätigen", 320, 240, 120, 30)
GUISetState()
while ;2 offen
$msg = GUIGetMsg()
Select ;2 offen
case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Vokabeltrainer", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
case $msg = $check
$unit = GUICtrlRead($Unit)
$iniunit = $unit + 1
$inidir = @ScriptDir & "\User_Edit.ini"
IniWrite($inidir, "Englisch", "unit", $iniunit)
ExitLoop
EndSelect ;1 offen
WEnd ;1 offen
While;2 offen
GUIDelete()
GUICreate("Vokabeltrainer", 800,500)
GUICtrlCreateLabel("Wählen Sie die Wortart aus", 10, 10)
$WordKind = GUICtrlCreateCombo("Nomen", 10,30,100,20,$ES_READONLY & $CBS_DROPDOWNLIST )
GUICtrlSetData(-1,"Verben|Adjektive|Andere")
$check = GUICtrlCreateButton("Ok", 120, 30, 40, 20)
GUISetState()
While 1 ; 3 offen
$msg = GUIGetMsg()
Select ;2 offen
case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Vokabeltrainer", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
ExitLoop
EndSelect ;1 offen
WEnd ;2 offen
While ;3 offen
$msg = GUIGetMsg()
Select ;2 offen
case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Setup", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
$EngWord = GUICtrlRead($Engword)
$GerWord = GUICtrlRead($GERword)
IniWrite(@ScriptDir & "\englisch\nomen.ini","unit" & $unit,$engword, $gerword)
ContinueLoop(2)
Case $msg = $fertig
ContinueLoop(3)
EndSelect ;1 offen
WEnd ;2 offen
;nomeneingabe zu ende
While ;3 offen
GUIDelete()
Select ;2 offen
Case $selectWordKind = "verben" ;Wenn verben ausgewählt wurde
GUICreate("vokabeltrainer", 800, 500)
GUICtrlCreateLabel("Füllen sie die Felder den Vorgaben entsprechend aus.", 10, 10)
GUICtrlCreateLabel("Wort/Bedeutung auf Englisch:" ,50, 40, 150, 20)
GUICtrlCreateLabel("Wort/Bedeutung auf Deutsch:" ,550, 40, 150, 20)
GUICtrlCreateLabel("Gramatik:", 50, 120, 50, 20)
GUICtrlCreateLabel("Simple past form:", 50, 150, 150,20)
GUICtrlCreateLabel("Past participle:", 550, 150, 150,20)
$EngWord = GUICtrlCreateInput("", 50, 70, 150, 20)
$GerWord = GUICtrlCreateInput("", 550, 70, 150, 20)
$simplepast = GUICtrlCreateInput("regular",50,180,150,20)
$pastparticiple = GUICtrlCreateInput("regular", 550, 180, 150, 20)
$check = GUICtrlCreateButton("Bestätigen", 320, 300, 120, 30)
$fertig = GUICtrlCreateButton("fertig", 320, 340,120,30)
GUISetState()
While ; 4 offen
$msg = GUIGetMsg()
Select ;3 offen
Case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Vokabeltrainer", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
$EngWord = GUICtrlRead($EngWord)
$GerWord = GUICtrlRead($GerWord)
$simplepast = GUICtrlRead($simplepast)
$pastparticiple = GUICtrlRead($pastparticiple)
IniWrite(@scriptdir & "\englisch\verben\infinitive.ini", "unit" & $unit,$engword,$gerword)
IniWrite(@scriptdir & "\englisch\verben\simplepast.ini", "unit" & $Unit,$engword,$simplepast)
IniWrite(@scriptdir & "\englisch\verben\pastparticiple.ini","unit" & $unit,$engword,$pastparticiple)
ContinueLoop(2)
EndSelect ; 2 offen
WEnd ;3 offen
EndSelect ;1 offen
WEnd ;2 offen
WEnd ; 1 offen
Case $selectlang = "latein"
MsgBox(0, "test", "Latein1")
Case $selectlang = "andere"
MsgBox(0, "test", "andere1")
EndSelect ; 0 offen
WEnd
die kommis hinter select und while sind, weil ich vorher vergass manche wieder zuzumachen usw, und ich weiß dass das nicht sonderlich sauber programmiert ist glaub ich
und ich hab noch nicht fertig / weiter programmiert
-
Wenn dann heist das
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
While 1Wend
[/autoit]
So läuft dein Programm:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
#include <ButtonConstants.au3>
Dim $Engword
Dim $GERword
Dim $fertig
Dim $selectWordKind
Dim $selectWordKindwhile 1 ;1 offen
[/autoit] [autoit][/autoit] [autoit]
GUICreate("Vokabeltrainer",800,500)
GuiCtrlCreateLabel("Wählen Sie die Sprache der neuen Vokabeln aus", 10,10)
$Language = GUICtrlCreateCombo("Englisch", 10, 30,100,-1, $ES_READONLY & $CBS_DROPDOWNLIST )
GUICtrlSetData(-1,"Latein|Andere")
$check = GUICtrlCreateButton("Ok",120,30,40,20)
GUISetState()
while 1 ;2offen
$msg=GUIGetMsg()
Select ;1offen
Case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Setup", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
ExitLoop
EndSelect ;0 offen
WEnd ;1 offen
$selectLang = GUICtrlRead($language)
$selectLang = GUICtrlRead($language)
Select ;1 offen
Case $selectlang = "englisch"
GUIDelete();GUI für die Eingabe Englischer Wörter wird erstellt
[/autoit] [autoit][/autoit] [autoit]GUICreate("Vokabeltrainer", 800, 500)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("Wählen sie die aktuelle Unit aus", 10, 10)
$defaultunit = IniRead("C:\Dokumente und Einstellungen\toka\Desktop\Voktrainer\programme\User_Edit.ini", "Englisch", "Unit", "1")
$Unit = GUICtrlCreateInput($defaultunit, 10, 30, 40, 20)
GUICtrlCreateUpdown($unit)
$check = GUICtrlCreateButton("Bestätigen", 320, 240, 120, 30)
GUISetState()
while 1 ;2 offen$msg = GUIGetMsg()
[/autoit] [autoit][/autoit] [autoit]
Select ;2 offen
case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Vokabeltrainer", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
case $msg = $check
$unit = GUICtrlRead($Unit)
$iniunit = $unit + 1
$inidir = @ScriptDir & "\User_Edit.ini"
IniWrite($inidir, "Englisch", "unit", $iniunit)
ExitLoop
EndSelect ;1 offen
WEnd ;1 offen
while 1;2 offen
GUIDelete()GUICreate("Vokabeltrainer", 800,500)
[/autoit]
GUICtrlCreateLabel("Wählen Sie die Wortart aus", 10, 10)
$WordKind = GUICtrlCreateCombo("Nomen", 10,30,100,20,$ES_READONLY & $CBS_DROPDOWNLIST )
GUICtrlSetData(-1,"Verben|Adjektive|Andere")
$check = GUICtrlCreateButton("Ok", 120, 30, 40, 20)
GUISetState()
while 1 ; 3 offen
$msg = GUIGetMsg()
Select ;2 offen
case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Vokabeltrainer", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
ExitLoop
EndSelect ;1 offen
WEnd ;2 offen
while 1 ;3 offen
$msg = GUIGetMsg()
Select ;2 offen
case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Setup", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
$EngWord = GUICtrlRead($Engword)
$GerWord = GUICtrlRead($GERword)
IniWrite(@ScriptDir & "\englisch\nomen.ini","unit" & $unit,$engword, $gerword)
ContinueLoop(2)
Case $msg = $fertig
ContinueLoop(3)
EndSelect ;1 offen
WEnd ;2 offen
;nomeneingabe zu ende
while 1 ;3 offen
GUIDelete()
Select ;2 offen
Case $selectWordKind = "verben" ;Wenn verben ausgewählt wurde
GUICreate("vokabeltrainer", 800, 500)
GUICtrlCreateLabel("Füllen sie die Felder den Vorgaben entsprechend aus.", 10, 10)
GUICtrlCreateLabel("Wort/Bedeutung auf Englisch:" ,50, 40, 150, 20)
GUICtrlCreateLabel("Wort/Bedeutung auf Deutsch:" ,550, 40, 150, 20)
GUICtrlCreateLabel("Gramatik:", 50, 120, 50, 20)
GUICtrlCreateLabel("Simple past form:", 50, 150, 150,20)
GUICtrlCreateLabel("Past participle:", 550, 150, 150,20)
$EngWord = GUICtrlCreateInput("", 50, 70, 150, 20)
$GerWord = GUICtrlCreateInput("", 550, 70, 150, 20)
$simplepast = GUICtrlCreateInput("regular",50,180,150,20)
$pastparticiple = GUICtrlCreateInput("regular", 550, 180, 150, 20)
$check = GUICtrlCreateButton("Bestätigen", 320, 300, 120, 30)
$fertig = GUICtrlCreateButton("fertig", 320, 340,120,30)
GUISetState()
while 1 ; 4 offen
$msg = GUIGetMsg()
Select ;3 offen
Case $msg = $GUI_EVENT_CLOSE
$Exit = MsgBox(52, "Vokabeltrainer", "Wollen Sie den Vokabeltrainer wirklich beenden?")
if $Exit = 6 Then
Exit
EndIf
Case $msg = $check
$EngWord = GUICtrlRead($EngWord)
$GerWord = GUICtrlRead($GerWord)
$simplepast = GUICtrlRead($simplepast)
$pastparticiple = GUICtrlRead($pastparticiple)
IniWrite(@scriptdir & "\englisch\verben\infinitive.ini", "unit" & $unit,$engword,$gerword)
IniWrite(@scriptdir & "\englisch\verben\simplepast.ini", "unit" & $Unit,$engword,$simplepast)
IniWrite(@scriptdir & "\englisch\verben\pastparticiple.ini","unit" & $unit,$engword,$pastparticiple)
ContinueLoop(2)
EndSelect ; 2 offen
WEnd ;3 offen
EndSelect ;1 offen
WEnd ;2 offen
WEnd ; 1 offen
Case $selectlang = "latein"
MsgBox(0, "test", "Latein1")
Case $selectlang = "andere"
MsgBox(0, "test", "andere1")
EndSelect ; 0 offen
WEnd
Achso Variablen werden eigentlich auch deklariert.MfG
Der_Doc -
Zitat
Sonst ist dir aber schon klar das While eine Zählschleife ist ja ???
Neeiin, aber nur weil ich grad nicht weiß, was eine zählschleife ist :wacko:
-
Danke erstmal

-
Bitte Bitte
MfG
Der_Doc -
Wenn der Thread gelöst ist dann bitte #1 Beitrag bearbeiten und den Präfix auf gelöst stellen.
Neeiin, aber nur weil ich grad nicht weiß, was eine zählschleife ist :wacko:
[autoit]
Schau dir mal das anFor $x = 0 To 5
[/autoit]
MsgBox(0, "Zähl Schleife vorwärts", $x)
Next
For $x = 5 To 0 Step -1
MsgBox(0, "Zähl Schleife rückwärts", $x)
Next