PB4 Interpretation bool'scher Ausdrücke

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

PB4 Interpretation bool'scher Ausdrücke

Beitrag von jear »

Code: Alles auswählen

a = 65

b = (a > 60)
Debug b                  ; Ergebnis 60, leider noch immer noch Nonsens !

Debug #False Or (a > 60) ; Ergebnis 1, richtig

Debug #False Or (a < 60) ; Ergebnis 0, richtig
Bin leicht geplättet!

Gegenüber PB 3.9 hat sich offenbar im Sinne des Themas überhaupt nichts getan.
Will PB nicht erwachsen werden?
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich war so frei, die frage mal im englischen forum zu stellen.

http://www.purebasic.fr/english/viewtopic.php?t=20594


Ich erntete Spott von anderen Usern, Ignoranz von Freak, und
Fred hielt es offenbar für unter seiner Würde, überhaupt zu antworten.


...wahrscheinlich hat er aber einfach so sehr den Überblick verloren, dass er überhaupt nicht in der Lage wäre, das zu implementieren, selbst wenn er wollte. Dann hat er halt einfach nicht den Mumm, das zuzugeben.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

hat wohl im Englischen Forum eine welle ausgelöst.

Mein Englisch ist leider nicht so gut wie es sein müßte.

Nun zur Interpretation von Boolean. Es ist wohl besser den TRUE als ungleich Null zu betrachten. Ich habe die Erfahrung gemacht das verschiedene Systeme für den Wert TRUE unterschiedliche Werte zuweist.
In der Regel ist Boolen ein 32 Bit Wert. Somit kam folgende Werte zu Tage:

-1, +1, Variant Bool 65535, etc ...

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Die dortige Diskussion ist ziemlich unglücklich.
Die als Beweis gedachten Beispiele sind eher zum Beweis des Gegenteils geeignet.
Die trickreiche Vermischung von arithmetischen und Bool'schen Operationen führt auch nicht zu wirklich besser lesbarem Kode.
Außerdem ist sie tatsächlich abhängig davon, welche Werte #True und #False in einer Sprache annehmen.

Mir geht es vielmehr um ganz schlichte Steuerungsstrukturen wie sie immer und überall vorkommen und in denen #True und #False in ihrer ureigensten Bedeutung genutzt werden:

Code: Alles auswählen

If a > 60
  DisableGadget(#ggg, #True)
Else
  DisableGadget(#ggg, #False)
EndIf
Warum nicht einfach:

Code: Alles auswählen

DisableGadget(#ggg, a > 60) 
Zuletzt geändert von jear am 14.04.2006 15:02, insgesamt 1-mal geändert.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Beitrag von Helle »

@mk-soft: Da finde ich Microsofts Interpretation (bzw.Festlegung) logisch: TRUE = -1. Begründung (von Microsoft): Wahr ist, wenn ALLE Bits gesetzt sind (Byte, Word usw. egal) und bei vorzeichenbehafteter Auswertung ist das eben -1.
Weiterhin sollte man dann setzen: FALSE = NOT TRUE.
Damit müssten eigentlich alle gut leben können, aber leider...
Siehe dazu u.a. Microsoft-Artikel-ID 42980 (auch aus anderen Gründen lesenswert!).

Frohes Osterfest!
Helle
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

was wirklich logisch ist, und nicht auf dem mist von Winzigweich gewachsen.

logische beweisführung:

1. Satz: #False = NOT #True
2. Satz: #False = 0

=> #True = NOT 0 = alle bits gesetzt = -1

...war auch schon aufm C64 so, aber anscheinend is das ja was, womit Fred nicht klar kommt...

nicht nur, daß bei ihm #True = 1 ist, er sieht sich ja außerstande auch nur eine fehlermeldung zu integrieren, geschweige denn die funktionalität...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Kaeru Gaman hat geschrieben:...wahrscheinlich hat er aber einfach so sehr den Überblick verloren, dass er überhaupt nicht in der Lage wäre, das zu implementieren, selbst wenn er wollte. Dann hat er halt einfach nicht den Mumm, das zuzugeben.
Warum gibt es dann nicht ein Forumabschnitt im Englischen Forum, wo man verbesserungsvorschläge abgeben kann???
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Kann man für diese kleine änderung keinen Pearser schreiben???
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

Gibts doch:

Feature Requests and Wishlists
Got an idea for enhancing PureBasic? New command(s) you'd like to see?
-.-"
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Leonhard hat geschrieben:Warum gibt es dann nicht ein Forumabschnitt im Englischen Forum, wo man verbesserungsvorschläge abgeben kann???
wenn du dich mal bequemst, auf den link in meinem ersten post zu klicken,
wirst du bemerken, dass ich genau dort meine anfrage gestellt habe,
und dass es eben diese reaktion dort war, die mich zu meiner aussage hier bewegt hat.

da waren nur 6 posts über deinem, ich denke nicht, dass es zu viel verlangt wäre, die auch zu lesen.

außerdem gibt es einen edit-button, also ist es unnötig, zwei posts direkt hintereinander zu schreiben.
(außer, es ist einige zeit vergangen, und man will darauf hinweisen,
dass informationen im thread hinzugekommen sind)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Gesperrt