Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Code lässt sich im Zusammenhang nicht ausführen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 18.10.2004, 22:43    Titel: Code lässt sich im Zusammenhang nicht ausführen Antworten mit Zitat

Hallo.

Code:
DECLARE FUNCTION GetTileSuffix$ (AktuellerBoden$, LetzterBoden$, NaechsterBoden$)

FUNCTION GetTileSuffix$ (AktuellerBoden$, LetzterBoden$, NaechsterBoden$)
   
IF LetzterBoden$ <> AktuellerBoden$ AND NaechsterBoden$ <> AktuellerBoden$ THEN

 IF LetzterBoden$ = "L" OR LetzterBoden$ = "W" OR LetzterBoden$ = "K" OR LetzterBoden$ = "G" THEN

  IF NaechsterBoden$ = "L" OR NaechsterBoden$ = "W" OR NaechsterBoden$ = "K" OR NaechsterBoden$ = "G" THEN
   TempSfx$ = "y"
  END IF

  IF NaechsterBoden$ <> "L" AND NaechsterBoden$ <> "W" AND NaechsterBoden$ <> "K" AND NaechsterBoden$ <> "G" THEN
   TempSfx$ = "w"
  END IF

 END IF

 IF NaechsterBoden$ = "L" OR NaechsterBoden$ = "W" OR NaechsterBoden$ = "K" OR NaechsterBoden$ = "G" THEN
   
  IF LetzterBoden$ <> "L" AND LetzterBoden$ <> "W" AND LetzterBoden$ <> "K" AND LetzterBoden$ <> "G" THEN
   TempSfx$ = "v"
  END IF
    
 END IF

 IF LetzterBoden$ <> "L" AND LetzterBoden$ <> "W" AND LetzterBoden$ <> "K" AND LetzterBoden$ <> "G" THEN
       
  IF NaechsterBoden$ <> "L" AND NaechsterBoden$ <> "W" AND NaechsterBoden$ <> "K" AND NaechsterBoden$ <> "G" THEN
   TempSfx$ = "e"
  END IF

 END IF

END IF

IF LetzterBoden$ = AktuellerBoden$ AND NaechsterBoden$ = AktuellerBoden$ THEN TempSfx$ = "m"

IF LetzterBoden$ <> AktuellerBoden$ AND NaechsterBoden$ = AktuellerBoden$ THEN
       
 IF LetzterBoden$ = "L" OR LetzterBoden$ = "W" OR LetzterBoden$ = "K" OR LetzterBoden$ = "G" THEN
  TempSfx$ = "x"
 ELSE :
  TempSfx$ = "l"
 END IF

END IF

IF LetzterBoden$ = AktuellerBoden$ AND NaechsterBoden$ <> AktuellerBoden$ THEN
       
 IF NaechsterBoden$ = "L" OR NaechsterBoden$ = "W" OR NaechsterBoden$ = "K" OR NaechsterBoden$ = "G" THEN
  TempSfx$ = "z"
 ELSE :
  TempSfx$ = "r"
 END IF

END IF

GetTileSuffix$ = TempSfx$

END FUNCTION


Wenn ich diese FUNCTION einfach so kompilieren will, geht alles. Füge ich sie allerdings in ein Programm ein, sodass dieses ~25KB groß ist, so ist laut Compiler-Fehlermeldungen fast jede Zeile ein Fehler.
Wie kann das sein? Ist das Programm mit 25KB schon zu groß für QB4.5?

Besonders merkwürdig: Unter QB 4.5 werden beim Kompilieren 43 Fehler gemeldet, unter QB 7.1 jedoch nur ~30.

QB 4.5 hat Folgendes geschrieben:
Code:
 168F   02C0    FUNCTION GetTileSuffix$ (AktuellerBoden$, LetzterBoden$, Naechst
erBoden$)
                                                          ^ Angabe eines unzuläs
sigen formalen Parameters
 168F   02C0    IF LetzterBoden$ <> AktuellerBoden$ AND NaechsterBoden$ <> Aktue
llerBoden$ THEN
                                 ^ Unverträgliche Anzahl an Argumenten
                                 ^ Fehlendes THEN
 168F   02C0     IF LetzterBoden$ = "L" OR LetzterBoden$ = "W" OR LetzterBoden$
= "K" OR LetzterBoden$ = "G" THEN
                                  ^ Unverträgliche Anzahl an Argumenten
                                  ^ Fehlendes THEN
 168F   02C0      IF NaechsterBoden$ = "L" OR NaechsterBoden$ = "W" OR Naechster
Boden$ = "K" OR NaechsterBoden$ = "G" THEN
                                     ^ Unverträgliche Anzahl an Argumenten
                                     ^ Fehlendes THEN
 168F   02C0      END IF
                      ^ END IF ohne Block-IF
 169C   02C4      IF NaechsterBoden$ <> "L" AND NaechsterBoden$ <> "W" AND Naech
sterBoden$ <> "K" AND NaechsterBoden$ <> "G" THEN
                                     ^ Unverträgliche Anzahl an Argumenten
                                     ^ Fehlendes THEN
 169C   02C4      END IF
                      ^ END IF ohne Block-IF
 16A9   02C4     END IF
                     ^ END IF ohne Block-IF
 16A9   02C4     IF NaechsterBoden$ = "L" OR NaechsterBoden$ = "W" OR NaechsterB
oden$ = "K" OR NaechsterBoden$ = "G" THEN
                                    ^ Unverträgliche Anzahl an Argumenten
                                    ^ Fehlendes THEN
 16A9   02C4      IF LetzterBoden$ <> "L" AND LetzterBoden$ <> "W" AND LetzterBo
den$ <> "K" AND LetzterBoden$ <> "G" THEN
                                   ^ Unverträgliche Anzahl an Argumenten
                                   ^ Fehlendes THEN
 16A9   02C4      END IF
                      ^ END IF ohne Block-IF
 16B6   02C4     END IF
                     ^ END IF ohne Block-IF
 16B6   02C4     IF LetzterBoden$ <> "L" AND LetzterBoden$ <> "W" AND LetzterBod
en$ <> "K" AND LetzterBoden$ <> "G" THEN
                                  ^ Unverträgliche Anzahl an Argumenten
                                  ^ Fehlendes THEN
 16B6   02C4      IF NaechsterBoden$ <> "L" AND NaechsterBoden$ <> "W" AND Naech
sterBoden$ <> "K" AND NaechsterBoden$ <> "G" THEN
                                     ^ Unverträgliche Anzahl an Argumenten
                                     ^ Fehlendes THEN
 16B6   02C4      END IF
                      ^ END IF ohne Block-IF
 16C3   02C4     END IF
                     ^ END IF ohne Block-IF
 16C3   02C4    END IF
                    ^ END IF ohne Block-IF
 16C3   02C4    IF LetzterBoden$ = AktuellerBoden$ AND NaechsterBoden$ = Aktuell
erBoden$ THEN TempSfx$ = "m"
                                 ^ Unverträgliche Anzahl an Argumenten
                                 ^ Fehlendes THEN
 16C3   02C4    IF LetzterBoden$ <> AktuellerBoden$ AND NaechsterBoden$ = Aktuel
lerBoden$ THEN
                                 ^ Unverträgliche Anzahl an Argumenten
                                 ^ Fehlendes THEN
 16C3   02C4     IF LetzterBoden$ = "L" OR LetzterBoden$ = "W" OR LetzterBoden$
= "K" OR LetzterBoden$ = "G" THEN
                                  ^ Unverträgliche Anzahl an Argumenten
                                  ^ Fehlendes THEN
 16C3   02C4     ELSE :
                 ^ ELSE ohne IF
 16D0   02C4     END IF
                     ^ END IF ohne Block-IF
 16DD   02C4    END IF
                    ^ END IF ohne Block-IF
 16DD   02C4    IF LetzterBoden$ = AktuellerBoden$ AND NaechsterBoden$ <> Aktuel
lerBoden$ THEN
                                 ^ Unverträgliche Anzahl an Argumenten
                                 ^ Fehlendes THEN
 16DD   02C4     IF NaechsterBoden$ = "L" OR NaechsterBoden$ = "W" OR NaechsterB
oden$ = "K" OR NaechsterBoden$ = "G" THEN
                                    ^ Unverträgliche Anzahl an Argumenten
                                    ^ Fehlendes THEN
 16DD   02C4     ELSE :
                 ^ ELSE ohne IF
 16EA   02C4     END IF
                     ^ END IF ohne Block-IF
 16F7   02C4    END IF
                    ^ END IF ohne Block-IF
 16F7   02C4    GetTileSuffix$ = TempSfx$
                ^ Variable erforderlich
 16F7   02C4    END FUNCTION
                    ^ END SUB/FUNCTION ohne SUB/FUNCTION

42797 Bytes verfügbar
29337 Bytes frei

    0 Warnung(en)
   43 Schwere(r) Fehler


Seperiert funktioniert der Code aber auch.

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 19.10.2004, 12:16    Titel: Na gibts denn sowas? - BUG! Antworten mit Zitat

Hallo.

Und das ist mal wieder ein BUG in QB!

Jetzt habe ich anstelle von den langen Variablennamen kurze genommen:
AktuellerBoden$ -> AkB$
LetzterBoden$ -> LeB$
NaechsterBoden$ -> NaB$

Und schon funktioniert's einwandfrei!!! happy happy happy

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
QBMaik



Anmeldungsdatum: 17.09.2004
Beiträge: 67
Wohnort: 25899 Niebüll

BeitragVerfasst am: 19.10.2004, 16:57    Titel: Antworten mit Zitat

Ist mir auch schon so ähnlich passiert... bei meinem Schachprogramm. Dort waren QBasic wohl die Zeilen zu lang...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 19.10.2004, 17:45    Titel: Antworten mit Zitat

Das ist ja noch gar nichts. Einmal wollte der Compiler meinen Source nicht kompilieren, weil meine Kommentarzeile zu lang war. Und soll mal einer sagen, dass Kommentare vom Compiler ignoriert werden... durchgeknallt
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 19.10.2004, 18:01    Titel: Ja, ja,.. Antworten mit Zitat

Hallo.

Ja, ich glaube auch nicht, dass die Kommentare überhaupt keine Rolle spielen.

Vor allem bei der Ausführung in der IDE verlangsamen sie bestimmt das Prozedere. verwundert

In der kompilierten EXE sind sie aber nicht mehr da und stören bzw. verlangsamen deshalb auch nichts. zwinkern

Der Compiler hatte vielleicht Schwierigkeiten den zu langen Kommentar zu entfernen. verwundert

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2457
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 19.10.2004, 19:58    Titel: Antworten mit Zitat

Vielleicht ist der Zeilenpuffer beim QB-Compiler etwas knapp in der Grösse bemessen. Ich meinte, max. 255 Zeichen sind nur zulässig pro Zeile. Abgesehen davon sollte man solche Riesenzeilen vermeiden und rechtzeitig mit "_" am Zeilenende umbrechen. Im Idealfall sollte sich ein Programm immer noch auf DIN-A4 im Hochformat mit einer 10 cpi (Zeichen pro Zoll)-Schrift ausdrucken lassen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz