Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - ';' erwartet, aber '.' gefunden (Was tun?)
miroh - Do 10.02.05 19:52
Titel: ';' erwartet, aber '.' gefunden (Was tun?)
hab kaum ahnung von delphi bzw. pascal und hab ein problem!
ich hab eine verzweigung geschrieben...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text); IF v_Eingabe < v_zahl THEN BEGIN P_Ausgabe.Caption := 'zu klein'; END ELSE BEGIN IF v_Eingabe = v_zahl THEN BEGIN P_Ausgabe.Caption := 'Richtig'; END ELSE BEGIN P_Ausgabe.Caption := 'zu groß'; END;
end; end. |
...und tauchen folgende fehlermeldungen auf...
[Fehler]U_Zahlenraten.pas(77):';' erwartet, aber '.' gefunden
[Fehler]U_Zahlenraten.pas(86):Deklaration erwartet, aber Dateiende gefunden
...und das letzte end, also 'end.' ist markiert!
was kann ich tun?
hoffe jemand kann mir helfen :wink:
jetzt schon mal DANKE!!!
Moderiert von
raziel: Delphi-Tags hinzugefügt.Moderiert von
Tino: Topic aus Sonstiges verschoben am Fr 11.02.2005 um 10:35
F34r0fTh3D4rk - Do 10.02.05 19:54
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text); IF v_Eingabe < v_zahl THEN P_Ausgabe.Caption := 'zu klein'; ELSE IF v_Eingabe = v_zahl THEN P_Ausgabe.Caption := 'Richtig'; ELSE P_Ausgabe.Caption := 'zu groß'; END; |
so müsste es stimmen :roll: jedenfalls vom syntax her :wink:
AXMD - Do 10.02.05 19:55
Ein END zuviel. Da dein Code aber furchtbar formatiert ist kann ich dir nichtmal sagen, welches END
AXMD
miroh - Do 10.02.05 19:57
vielen dank noch ma
F34r0fTh3D4rk - Do 10.02.05 19:58
geht es ?
| Zitat: |
Ein END zuviel. Da dein Code aber furchtbar formatiert ist kann ich dir nichtmal sagen, welches END
|
normal doch zu wenig oder? wenn ":" erwartet wird ?
ja die begins und ends werden eh nich gebraucht, verwirrt nur unnötig
der_zaehe - Do 10.02.05 20:44
mein tip für dich ist, falls so ein problem noch mal auftauchen sollte, den quelltext vernünftig zu formatieren, etwa so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| if Boolean1 = TRUE then begin end else begin end; |
patrick - Do 10.02.05 21:10
| F34r0fTh3D4rk hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text); IF v_Eingabe < v_zahl THEN P_Ausgabe.Caption := 'zu klein'; ELSE IF v_Eingabe = v_zahl THEN P_Ausgabe.Caption := 'Richtig'; ELSE P_Ausgabe.Caption := 'zu groß'; END; |
so müsste es stimmen :roll: jedenfalls vom syntax her :wink: |
nö, eben nicht.
ein
; vor einer
else ist nämlich verboten.
außerdem fehlt dir in der tat ein
end;, weil es 2 if verzweigungen in der prozedur gibt, aber nur eine mit
end; abgeschlossen wurde.
hier mal mein vorschlag (inkl anderer formatierung):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text); if v_Eingabe < v_zahl then begin P_Ausgabe.Caption := 'zu klein'; end else begin if v_Eingabe = v_zahl then begin P_Ausgabe.Caption := 'Richtig'; end else begin P_Ausgabe.Caption := 'zu groß'; end; end; end; |
abgesehen das ich solche sachen wie
v_Zahl in
VZahl bzw nen ausdruckstärkeren variablennamen benutzen. das ist aber jetzt absolut mein style ^^.
am übersichtlichsten lässt sich solcher code aber so schreiben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text);
if v_Eingabe < v_zahl then begin P_Ausgabe.Caption := 'zu klein'; end;
if v_Eingabe = v_zahl then begin P_Ausgabe.Caption := 'Richtig'; end;
if v_Eingabe > v_zahl then begin P_Ausgabe.Caption := 'zu groß'; end; end; |
CenBells - Fr 11.02.05 11:19
| patrick hat folgendes geschrieben: |
| F34r0fTh3D4rk hat folgendes geschrieben: | Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text); IF v_Eingabe < v_zahl THEN P_Ausgabe.Caption := 'zu klein'; ELSE IF v_Eingabe = v_zahl THEN P_Ausgabe.Caption := 'Richtig'; ELSE P_Ausgabe.Caption := 'zu groß'; END; |
so müsste es stimmen :roll: jedenfalls vom syntax her :wink: |
nö, eben nicht.
ein ; vor einer else ist nämlich verboten.
außerdem fehlt dir in der tat ein end;, weil es 2 if verzweigungen in der prozedur gibt, aber nur eine mit end; abgeschlossen wurde.... |
Hi,
was meinst du, welches End der Father denn überhaupt noch hingeschrieben hat? das prozedur end; . Man braucht in dem hier diskutierten code definitiv kein begin und end in jedem if then else block.
Also, nochmal die korrigierte Fassung ( ; ) ;)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.B_RatenClick(Sender: TObject); begin v_Eingabe := StrToInt(E_Eingabe.Text); IF v_Eingabe < v_zahl THEN P_Ausgabe.Caption := 'zu klein' ELSE IF v_Eingabe = v_zahl THEN P_Ausgabe.Caption := 'Richtig' ELSE P_Ausgabe.Caption := 'zu groß'; END; |
Gruß
Ken
F34r0fTh3D4rk - Fr 11.02.05 16:02
ohh da hab ich garnet drauf geachtet, hast natürlich recht, das ist übelst verboten !
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!