 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 23.04.2011, 17:09 Titel: Fehler in Sub? |
|
|
Habe einen Quellcode der in Qbasic funktioniert, aber in Freebasic eine Fehlermeldung ausgibt.
Code: | SUB FELD (X, Y, XX, YY, FARBEN)
LINE (X, Y) - (XX, YY), 15
LINE (X, Y) - (XX, Y), 15
LINE (X, YY) - (XX, YY), 8
LINE (XX, Y) - (XX, YY), 8
VIEW (X + 2, Y + 2) - (XX - 2, YY - 2), FARBEN, FARBEN
VIEW (0, 0)-(639, 479)
END SUB |
Das Unterprogramm
Code: | FELD 550, 50, 600, 100, 0 |
Sollte mit dieser Zeile eine kleine Box anzeigen.
Code: | error 10: Expected '='
FELD 550, 50, 600, 100, 0 |
Die Fehlermeldung
Ich habe ein Programm, dass in Qbasic geschrieben wurde und später mal in Freebasic laufen sollte. _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 23.04.2011, 18:47 Titel: |
|
|
Die Informationen sind etwas mager, um die Fehlerquelle ausfindig zu machen. An sich sollten alle Variablen explizit deklariert werden:
Code: | SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER) |
Wenn er deswegen nicht meckert, vermute ich, dass du -lang qb verwendest.
Zweite mögliche Fehlerquelle: Hast du vor dem Aufruf der Prozedur (am besten gleich zu Programmbeginn) diese deklariert?
Code: | DECLARE SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER) |
Für weitere Fehleranalyse bräuchte ich dann aber den kompletten Code (bzw. soweit komplett, dass der Fehler dort auftritt). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 23.04.2011, 19:03 Titel: |
|
|
nemored hat Folgendes geschrieben: | Die Informationen sind etwas mager, um die Fehlerquelle ausfindig zu machen. An sich sollten alle Variablen explizit deklariert werden:
Code: | SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER) |
Wenn er deswegen nicht meckert, vermute ich, dass du -lang qb verwendest.
Zweite mögliche Fehlerquelle: Hast du vor dem Aufruf der Prozedur (am besten gleich zu Programmbeginn) diese deklariert?
Code: | DECLARE SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER) |
Für weitere Fehleranalyse bräuchte ich dann aber den kompletten Code (bzw. soweit komplett, dass der Fehler dort auftritt). |
Das ist der gesamte Code.
Das einzige was fehlt ist:
Code: | SCREEN 12
Width 80, 60 |
Ich verwende Deprecated GUI.
Deklarierung damit überflüssig oder?
Code: | SCREEN 12
Width 80, 60
FELD 550, 50, 600, 100, 0
SLEEP
END
SUB FELD (X, Y, XX, YY, FARBEN)
LINE (X, Y) - (XX, YY), 15
LINE (X, Y) - (XX, Y), 15
LINE (X, YY) - (XX, YY), 8
LINE (XX, Y) - (XX, YY), 8
VIEW (X + 2, Y + 2) - (XX - 2, YY - 2), FARBEN, FARBEN
VIEW (0, 0)-(639, 479)
END SUB |
_________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 23.04.2011, 19:16 Titel: |
|
|
Das kann doch nicht funktionieren. In deinem Code rufst du die Sub auf noch bevor sie bekannt ist. Entweder du deklarierst sie ganz oben wie nemored schon beschrieben hat oder du setzt die gesamte Sub an den Anfang des Codes. Die Datentypen der Variablen kannst du dir unter Deprecated auch nicht sparen.
All diese Informationen kannst du in der Referenz nachlesen und für all das gibt es auch Anfängertutorials im Portal. |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 23.04.2011, 19:23 Titel: |
|
|
Code: | DECLARE SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER) |
Bei Qbasic wurde diese Zeile immer von selbst eingefügt!
Jetzt ist mir alles klar! Qbasic war bei weitem besser! Da wusste ich sofort welcher Fehler und wo der ist.
Auf jedenfall geht es jetzt!
Ich danke euch recht herzlich! _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 23.04.2011, 19:29 Titel: |
|
|
QB hat gar nichts eingefügt, QB war es einfach egal. Du kannst mit lang "qb" das gleiche erzielen. Das steht wiederum auch beschrieben im Portal... |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 23.04.2011, 19:41 Titel: |
|
|
Wenn etwas eingefügt wurde, dann von der IDE. Es spricht an sich nichts dagegen, für FreeBASIC eine IDE zu verwenden, die das ebenfalls kann. Ob es eine solche gibt, kann ich nicht sagen. Mit der Qualität des Compilers fbc hat das jedenfalls herzlich wenig zu tun. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 23.04.2011, 19:46 Titel: |
|
|
MOD hat Folgendes geschrieben: | QB hat gar nichts eingefügt, QB war es einfach egal. Du kannst mit lang "qb" das gleiche erzielen. Das steht wiederum auch beschrieben im Portal... |
Ich dachte Qbasic hätte da was eingefügt? Irgendwas hat Qbasic aber eingefügt. Kann aber sein, dass ich mich irre.
Mit lang Qb habe ich es schon probiert. Hat aber glaube ich nicht funktioniert. _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 23.04.2011, 21:06 Titel: |
|
|
qbasic hat die auch von alleine eingefügt, das stimmt schon.
Aber nur so als tip: basiere aussagen, was du meinst was besser ist, nicht darauf, was du nur besser kennst  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|