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:

CONST FALSE = 0, TRUE = NOT FALSE - Fehlermeldung???
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1047
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2012, 18:17    Titel: CONST FALSE = 0, TRUE = NOT FALSE - Fehlermeldung??? Antworten mit Zitat

Ich habe in einem Programm folgende Zeile drin:

Code:
CONST FALSE = 0, TRUE = NOT FALSE


und bekomme folgende Fehlermeldung:

Zitat:
error 14: Expected identifier


Obwohl ich alles so geschrieben habe wie es sein soll. Kann keinen Fehler entdecken. Sobald ich diese eine Zeile rauslösche, kann ich das Programm wieder ohne Probleme compilieren.

Kennt einer eine Lösung?

Bei einem anderen Programm funktioniert es ohne Probleme!

Code:
SCREEN 12
DIM SHARED AS INTEGER R
CONST FALSE = 0
CONST TRUE = NOT FALSE
R = TRUE
IF R THEN LOCATE 5,5: PRINT "Test!"
SLEEP
END


Benutze Compiler 23.00 und FbEdit 1.0.7.6c als IDE

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 26.06.2012, 19:16    Titel: Antworten mit Zitat

Muss an was anderem im Programm liegen; die Zeile für sich ist fehlerfrei.
_________________
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1047
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2012, 19:42    Titel: Antworten mit Zitat

An genau der einen Zeile stoppt das Programm.
Kann das dann trotzdem an was anderem im Programm liegen?

Wenn ja, so muss ich den Quellcode noch mal durchschauen.
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

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

Zitat:
CONST FALSE = 0, TRUE = NOT FALSE,


Man beachte das letzte Zeichen. Damit erhalte ich auch eine "Expected identifier"-Meldung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1047
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2012, 19:59    Titel: Antworten mit Zitat

MOD hat Folgendes geschrieben:
Zitat:
CONST FALSE = 0, TRUE = NOT FALSE,


Man beachte das letzte Zeichen. Damit erhalte ich auch eine "Expected identifier"-Meldung.


Das Komma ist im Quellcoe nicht drin.

Code:
CONST FALSE = 0, TRUE = NOT FALSE


Nur diese eine Zeile macht die Fehlermeldung!
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 26.06.2012, 20:12    Titel: Antworten mit Zitat

Zitat:
An genau der einen Zeile stoppt das Programm.
Kann das dann trotzdem an was anderem im Programm liegen?

Ja, zum Beispiel, wenn du davor etwas machst, das diese Zeile zu einem Fehler veranlasst.

Einfacher wäre es für uns, wenn du mal das ganze Programm postest oder noch besser einen Ausschnitt, der so weit reduziert ist, dass der Fehler noch auftritt. Sonst können wir hier nur raten.
_________________
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1047
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2012, 20:24    Titel: Antworten mit Zitat

Code:
#INCLUDE ONCE "WINDOWS.BI"
#Include Once "win\COMMDLG.BI"
#INCLUDE "file.bi"
DIM SHARED AS INTEGER R1, R2, BDRAUF
CONST FALSE = 0, TRUE = NOT FALSE
DIM SHARED AS String Spieler1(500)
SLEEP
END

_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.06.2012, 20:26    Titel: Antworten mit Zitat

TRUE und FALSE sind bereits in der windows.bi per #Define declariert

daher arbeite ich inzwischen viel mit namespaces, da kann sowas dann seltener passieren...

Code:

        #IfNDef TRUE
            CONST FALSE = 0, TRUE = NOT FALSE
        #EndIf

_________________


Zuletzt bearbeitet von Eternal_pain am 26.06.2012, 20:29, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1047
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2012, 20:28    Titel: Antworten mit Zitat

Danke für die Info!!!
Das wusste ich nicht.

Edit: Programm funktioniert aber nicht mehr so wie vorher! neutral verwundert

Grafikfehler.

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.06.2012, 20:47    Titel: Antworten mit Zitat

Nutzt Du FALSE bzw TRUE bei der Grafik-darstellung/berechnung? Falls ja

In windows.bi ist TRUE korrekterweise als 1 deklariert bei dir ist TRUE als NOT FALSE also -1
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1047
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2012, 20:52    Titel: Antworten mit Zitat

Eternal_pain hat Folgendes geschrieben:
Nutzt Du FALSE bzw TRUE bei der Grafik-darstellung/berechnung? Falls ja

In windows.bi ist TRUE korrekterweise als 1 deklariert bei dir ist TRUE als NOT FALSE also -1


Bereits gemerkt! Programm funktioniert jetzt einwandfrei nachdem ich das im Programm geändert habe!

Danke für die professionelle Hilfe!!!
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 26.06.2012, 20:57    Titel: Antworten mit Zitat

Eternal_pain hat Folgendes geschrieben:
korrekterweise

ist Definitionssache ...
_________________
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
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.06.2012, 21:20    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Eternal_pain hat Folgendes geschrieben:
korrekterweise

ist Definitionssache ...


Mag wohl stimmen, irgendwo gabs glaube auch mal ein 'streit-beitrag' dazu happy

Ich allerdings seh es so, würde es einen variablentypen BIT geben, dann wären True und False von diesem typ bzw bool wäre dieser typ, und die könnten nur 0 oder 1 annehmen.. daher meinte ich 'korrekterweise' happy

Im allgemeinen macht es aber keinen wirklichen unterschied, ausser man nutzt wie ALWIM hier diese variablen zusätzlich zur berechnung, da kann so ein einfacher unterschied wohl folgen haben
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 27.06.2012, 01:05    Titel: Antworten mit Zitat

wenn du bit als normalen signed datentyp mit 2-komplement interpretierst (so wie sämtliche anderen integralen signed-typen) hat "bit 1" aber trotzdem den zahlenwert -1, weil bit dann von -1 ("1") bis 0 ("0") geht, genau wie byte von -128 ("11111111") bis +127 ("01111111") geht und int von -2.147.483.648 ("11111111111111111111111111111111") bis +2.147.483.647 ("01111111111111111111111111111111") geht Zunge rausstrecken

solang du also bit und nicht ubit benutzt ist true == -1. happy und deswegen ist ein entsprechender boolean datentyp mit ausschließlich literalen werten true und false in sprachen wie java eine tolle erfindung, damit gibts den hickhack nämlich nicht. Und obendrauf hat man den bonus, dass er diverse tippfehler zu echten syntax-errors macht (== vergessen bei if(i = 1) {..} anyone?)
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 03.07.2012, 20:26    Titel: Antworten mit Zitat

normalerweise sollte es auch ein wedernoch geben, sowas wie const falsetrue=0.5 grinsen

duck renn
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 03.07.2012, 20:39    Titel: Antworten mit Zitat

Ich wäre da ja mehr für den Namen dontCare.

(Eigentlich würde mir maybe noch besser gefallen, aber das taucht im deutschen Artikel komischerweise gar nicht auf ...)
_________________
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
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 04.07.2012, 19:25    Titel: Antworten mit Zitat

Die Fuzzy-Logik definiert nutzt sämtliche werte im bereich von 0 bis 1 als wahrheitswerte, lies wiki wenn du mehr wissen willst, keine neue erfindung ;P

zu tristate logik (true/false/x statt unendlich viele kontinuierliche werte) gibts auch ne menge theorie.
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 92

BeitragVerfasst am: 08.10.2024, 18:12    Titel: Antworten mit Zitat

Du schreibst:
Ich habe in einem Programm folgende Zeile drin:

Code: 'Dies sei mal die Definitions-Zeile
CONST FALSE = 0, TRUE = NOT FALSE
und bekomme folgende Fehlermeldung: .........

Du hast aber einen Code geschrieben , der offenbar funktioniert.
Code:
SCREEN 12
DIM SHARED AS INTEGER R
CONST FALSE = 0
CONST TRUE = NOT FALSE
R = TRUE
IF R THEN LOCATE 5,5: PRINT "Test!"
SLEEP
END


Nur mal als Idee und Anregung: worin besteht der Unterschied?
In deinem Programm verwendest du "CONST TRUE ="
In der Definitions-Zeile aber nicht.
CONST FALSE = 0, TRUE = NOT FALSE

Hier nimmst du an, dass "CONST" für beide Variablen "FALSE" und "TRUE"
gleichzeitig gilt. So ist es aber nicht. "CONST" gilt nur für die erste Variable
hier "FALSE", nicht aber auch für "True".

Mit:
CONST FALSE = 0
CONST TRUE = NOT FALSE wird das Problem in zwei Zeilen aufgeteilt und ist
daher vielleicht einfacher handhabbar. Teile und herrsche!

Wie gesagt: Nur eine Idee, keine Ahnung, ob sie funktioniert. Aber zumindest ist sie einen Versuch wert.

Falls es klappt, freue ich mich für dich, falls nicht, sei mir bitte nicht böse.

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



Anmeldungsdatum: 26.12.2022
Beiträge: 92

BeitragVerfasst am: 08.10.2024, 18:34    Titel: Antworten mit Zitat

Hallo ALWIM,
Du schreibst:
Ich habe in einem Programm folgende Zeile drin:

Code: 'Dies sei mal die Definitions-Zeile
CONST FALSE = 0, TRUE = NOT FALSE
und bekomme folgende Fehlermeldung: .........

Du hast aber einen Code geschrieben , der offenbar funktioniert.
Code:
SCREEN 12
DIM SHARED AS INTEGER R
CONST FALSE = 0
CONST TRUE = NOT FALSE
R = TRUE
IF R THEN LOCATE 5,5: PRINT "Test!"
SLEEP
END


Nur mal als Idee und Anregung: worin besteht der Unterschied?
In deinem Programm verwendest du "CONST TRUE ="
In der Definitions-Zeile aber nicht.
CONST FALSE = 0, TRUE = NOT FALSE

Hier nimmst du an, dass "CONST" für beide Variablen "FALSE" und "TRUE"
gleichzeitig gilt. So ist es aber nicht. "CONST" gilt nur für die erste Variable
hier "FALSE", nicht aber auch für "True".

nemored hat mir diesen feinen Unterschied erst mal beigebracht.
Daher erst mal vielen Dank an nemored.


Mit:
CONST FALSE = 0
CONST TRUE = NOT FALSE wird das Problem in zwei Zeilen aufgeteilt und ist
daher vielleicht einfacher handhabbar. Teile und herrsche!

Wie gesagt: Nur eine Idee, keine Ahnung, ob sie funktioniert. Aber zumindest ist sie einen Versuch wert.

Falls es klappt, freue ich mich für dich, falls nicht, sei mir bitte nicht böse.

Mit netten Grüßen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lothar Schirm



Anmeldungsdatum: 24.04.2006
Beiträge: 65
Wohnort: Bayern

BeitragVerfasst am: 14.10.2024, 16:38    Titel: Antworten mit Zitat

Revilo hat Folgendes geschrieben:
Hallo ALWIM,
Du schreibst:
Ich habe in einem Programm folgende Zeile drin:

Code: 'Dies sei mal die Definitions-Zeile
CONST FALSE = 0, TRUE = NOT FALSE
und bekomme folgende Fehlermeldung: .........

Du hast aber einen Code geschrieben , der offenbar funktioniert.
Code:
SCREEN 12
DIM SHARED AS INTEGER R
CONST FALSE = 0
CONST TRUE = NOT FALSE
R = TRUE
IF R THEN LOCATE 5,5: PRINT "Test!"
SLEEP
END


Nur mal als Idee und Anregung: worin besteht der Unterschied?
In deinem Programm verwendest du "CONST TRUE ="
In der Definitions-Zeile aber nicht.
CONST FALSE = 0, TRUE = NOT FALSE

Hier nimmst du an, dass "CONST" für beide Variablen "FALSE" und "TRUE"
gleichzeitig gilt. So ist es aber nicht. "CONST" gilt nur für die erste Variable
hier "FALSE", nicht aber auch für "True".


Ich glaube, das ist so nicht richtig. Hier die Definition aus dem FreeBASIC Manual:
Zitat:

Const symbolname1 [AS DataType] = value1 [, symbolname2 [AS DataType] = value2, ...]

or

Const [AS DataType] symbolname1 = value1 [, symbolname2 = value2, ...]


Description

Declares non-modifiable constant data that can be integer or decimal (floating-point) numbers or strings. The constant type will be inferred if DataType isn't explicitly given.

Man kann also CONST-Variablen schon durch Kommata getrennt deklarieren, aber vielleicht gibt es Probleme, wenn die zweite Variable in der Deklaration irgendwie von der ersten abgeleitet wird statt dass ihr Wert explizit angeben wird. CONST False = 0, True = 1 müsste zum Beispiel gehen.
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 FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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