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:

Fehlermeldung "Doppelte Definition"

 
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
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 69

BeitragVerfasst am: 09.12.2023, 00:31    Titel: Fehlermeldung "Doppelte Definition" Antworten mit Zitat

Hallo Qbasic-Freunde,
ich habe ein Programm geschrieben, das prinzipiell sauber läuft.

Ich wollte es im Nachhinein noch etwas verbessern, zweckmäßiger gestalten.

Dabei wurde mir immer wieder o.g. Fehlermeldung präsentiert.
Irgendwo muß in meinem Verbesserungs-Versuch also etwas falsch gelaufen sein.

Ich bekomme lediglich o.g. Fehlermeldung, ohne Hinweis, wo der Fehler passiert ist. Die Hilfestellung von Qbasic ist da also nicht wirklich hilfreich.

Es mag sich ja nur um eine Kleinigkeit handeln, etwas das man eventuell nicht beachtet hat.
Aber wenn man die mögliche Fehlerquelle nicht angezeigt bekommt,
sucht man sich "scheckig". Letztlich verwirft man frustriert das gesamte Programm, und schreibt es komplett neu, in der Hoffnung daß diese Meldung dann nicht mehr erscheint. Das kann es doch wohl nicht sein.

Hat jemand eine Idee, wie man die Ursache dieser Fehlermeldung
möglichst eng eingrenzen kann?

Mit netten Grüßen
Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 09.12.2023, 09:47    Titel: Antworten mit Zitat

Compilierst du das Programm oder lässt du es im Interpreter laufen? Der Interpreter sollte eigentlich genau an der Stelle abbrechen, an der der Fehler auftritt. Gegebenenfalls kannst du dir die Zeilennummer über ERL anzeigen lassen.
In der FreeBASIC-Referenz steht ein Beispielprogramm zur Fehlerbehandlung:
https://www.freebasic-portal.de/befehlsreferenz/erl-605.html
Wenn du die erste Zeile weglässt, müsste es eigentlich auch in QBasic laufen.

Hier mal etwas modifiziert (nicht getestet):
Code:
ON ERROR GOTO errorhandler  ' legt fest, zu welchem Label verzweigt werden soll.
' hier steht das eigentliche Programm
' ...
' ...

errorhandler:
PRINT "Fehler in Zeile "; ERL; " aufgetreten!"   'Fehlerzeile anzeigen
PRINT "Beliebige Taste zum Beenden"
SLEEP
END

_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 338

BeitragVerfasst am: 09.12.2023, 21:40    Titel: Antworten mit Zitat

Benutzt du zwei oder mehrmals Dim auf dieselbe Variable?

Aus: https://hwiegman.home.xs4all.nl/qbasic2/arbeiten.pdf


Zitat:
Fehler 2: DIM-Anweisung in einer Schleife verwendet
Achten Sie darauf, daB sich DIM-Anweisungen nicht innerhalb von
Programmschleifen befinden. Der folgende Programmausschnitt zeigt
die falsche Anwendung einer DIM-Anweisung zur Deklaration eines
dynamischen Feldes:
OPTI ON BASE 1
Anzahl% = 5
CLS
FOR i% = 1 TO Anzahl%
DIM Namen$(Anzahl%)
INPUT "Geben Sie einen Namen ein: ", Namen$(i%)
NEXT i%
PRINT
FOR i% • 1 TO Anzahl%
PRINT Namen$(i%)
NEXT i%
N achdem Sie das Programm gestartet haben, erhalten Sie, wenn die
DIM-Anweisung zum zweitenmal ausgefuhrt wird, folgende Fehlermeldung:
Doppelte Definition
< OK > < Hllfe >
Der Fehler laBt sich vermeiden, i

_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 69

BeitragVerfasst am: 10.12.2023, 15:06    Titel: Antworten mit Zitat

Hallo Leute,
Ich lasse das Programm im Interpreter laufen.

Die DIM - Anweisung/en zum definieren von Variablen schreibe ich grundsätzlich zuerst.
Danach wird DIM weder im Hauptprogramm noch in Unterprogrammen verwendet.

Diese Fehlermeldung erscheint gelegentlich aber trotzdem.
Es muß also eine andere Ursache dafür geben.

Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 11.12.2023, 19:10    Titel: Antworten mit Zitat

Schickt dich denn der Interpreter bei einem Fehler nicht automatisch in die Zeile, in der der Fehler aufgetreten ist? QBasic ist bei mir schon eine Weile her, aber wenn ich mich richtig erinnere, konnte man da direkt zur Fehlerzeile springen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 69

BeitragVerfasst am: 12.12.2023, 16:13    Titel: Antworten mit Zitat

Hallo nemored,
ja, ich lande wie du vermutet hast. in einer Zeile.

Da ich DIM aber nur einmal für die jeweilige Variable benutzt habe, also weder davor noch danach, ist es mir ein Rätsel, wo eine doppelte Definition erfolgt sein soll.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 13.12.2023, 19:44    Titel: Antworten mit Zitat

Wie lautet denn die Zeile bzw. wie heißt die Variable? Vielleicht handelt es sich ja um ein Schlüsselwort.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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