Aktuelle Zeit: 28.03.2020 13:46

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Vergleichs-Ausdruck liefert keinen boolschen Wert (erledigt)
BeitragVerfasst: 21.06.2006 11:54 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Hallo zusammen, ...

ich wollte den boolschen Rückgabewert eines Vergleichsausdrucks (z.B. "Var < 1000") innerhalb einer Berechnung verwenden.
Jedoch liefert z.B. der Ausdruck "Var < 200" als Ergebnis IMMER "200" zurück, anstatt 0 für #False bzw. 1 für #True.

Bsp:
Code:
TestValue = 800
Debug Str(TestValue)+" > 200  :  "+Str(TestValue > 200)
Debug Str(TestValue)+" = 200  :  "+Str(TestValue = 200)
Debug Str(TestValue)+" < 200  :  "+Str(TestValue < 200)

Normalerweise kenne ich das so, dass als Resultat eines solchen Ausdrucks 0 oder 1 (bzw. 0 oder -1) zurückgegeben wird.
Auch laut PB-Hilfe sollte hier True oder False zurück gegeben werden.

Habe ich da irgendwo einen Denkfehler, mache ich was falsch oder ist dies im Grunde eine PB Eigenart (bzw. ein Bug)?

Gruß, PL.

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Zuletzt geändert von PureLust am 21.06.2006 15:27, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 21.06.2006 12:08 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
laut hilfe wird 'true' bzw 'false' zurückgegeben, aber nicht #True oder #False oder 1 , -1, oder 0 ect.
boolsche operatoren geben in PB, soweit ich weiss, keine weiterverwendbaren integer zurück, wie das in C der fall ist. ( :cry: leider)

sowas geht auch nicht:
equals_counter + (a=b) --------( = equals, nicht die zuweisung)

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 21.06.2006 12:18 
Offline
Benutzeravatar

Registriert: 22.02.2005 19:08
Du kannst da ein bisschen tricksen:


Code:
TestValue = 800
Debug Str(TestValue)+" > 200  :  "+Str(0 Or TestValue > 200)
Debug Str(TestValue)+" = 200  :  "+Str(0 Or TestValue = 200)
Debug Str(TestValue)+" < 200  :  "+Str(0 Or TestValue < 200)

_________________
-.-"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 21.06.2006 12:46 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
@Green Snake:

super WA - vielen Dank !!! :allright:


Ich hatte es schon per "Str((TestValue < 200)=#True)" versucht, leider auch ohne Erfolg.

PureBasic scheint als Ergebnis also erst einen bolschen Wert zurückzugeben, wenn im Ausdruck ein logischer Operant verwentet wird.

Ist zwar ein bischen unlogisch und auch inkonsistent .... aber naja. :roll:

Auf jeden Fall erst mal vielen Dank für den Tip - nun komm' ich weiter. :allright:

Greetz & Thanks,
PureLust.

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 21.06.2006 13:43 
Offline
Benutzeravatar

Registriert: 17.10.2004 01:59
Wohnort: Ammerland
@PureLust
Das ist schon ausführlich diskutiert worden(z.B. hier) und lässt sich zur Zeit nur durch einen Macro in PB4 lösen.

Hier noch mal ein Beispiel:
Code:
Macro Is(BooleanExpression)
  (#False Or(BooleanExpression))
EndMacro


a = 50 : Debug Is(a<60) : Debug Is(a=60) : Debug Is(a>60)
a = 60 : Debug Is(a<60) : Debug Is(a=60) : Debug Is(a>60)
a = 70 : Debug Is(a<60) : Debug Is(a=60) : Debug Is(a>60)

File.s = "Test.vob"
IsVOB.b = Is(LCase(GetExtensionPart(file)) = "vob")
Debug IsVOB


Wird hoffentlich in einer neuen Version von Fred mal in PB integriert.

_________________
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!


Zuletzt geändert von jear am 21.06.2006 16:59, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 21.06.2006 15:13 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Hallo jear,

vielen Dank für den Link - ich habe mich da mal durchgeackert. ;)
Scheinbar wurde diese Geschichte ja von Fred nicht beachtet, da in der PB4-Final noch keine Lösung diesbezüglich integriert ist.

Naja ... wenn man sowas weiss, so kann man sich natürlich auch mit dem Macro bzw. dem oben stehenden Tip von Green Snake behelfen.

@André:
Es wäre vielleicht sinnvoll, dieses 'nicht gerade gebräuchliche' Verhalten auch in der Hilfe (z.B. bei "Variablen, Typen und Operatoren") zu erwähnen.
Für Programmierer mit Kenntnissen aus anderen Sprachen (die es also anders gewöhnt sind) würde dies vermutlich hilfreich sein.

ThanX an Alle die geholfen haben, :allright:
PureLust.

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 24.06.2006 02:38 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
PureLust hat geschrieben:
@André:
Es wäre vielleicht sinnvoll, dieses 'nicht gerade gebräuchliche' Verhalten auch in der Hilfe (z.B. bei "Variablen, Typen und Operatoren") zu erwähnen.
Für Programmierer mit Kenntnissen aus anderen Sprachen (die es also anders gewöhnt sind) würde dies vermutlich hilfreich sein.

Hierfür bräuchte ich dann bloß eben auch einen vollständigen Textvorschlag. Eine eigene 100%ige Erklärung bekomme ich mangels Kenntnisse anderer Sprachen so nicht hin.

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 25.06.2006 13:31 
Offline

Registriert: 28.10.2005 07:21
@Andre:
Habe einen Textvorschlag in "Verbesserungen an der Dokumentation für PureBasic v4" gepostet.

Gruß Rainer


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye