Seite 2 von 2

Verfasst: 07.06.2007 15:05
von ts-soft
Es gibt keine boolsche Algebra in PB. Wenns geht ist es Zufall. Nur im
zusammenhang mit If macht es Sinn.

Verfasst: 07.06.2007 15:11
von mk-soft
Wenns geht ist es schön. Sollte man aber testen.

Es ist wenn man C weg lässt jedoch immer noch ein Problem mit der Variable B in der Procedure wenn die Variable nicht vorher deklariert worden ist.

Verfasst: 07.06.2007 15:17
von ts-soft

Code: Alles auswählen

Procedure Test()
  Protected b.l
  b = 4711
  Static a.b = 0
  Debug b
  Debug a
  b - 4000
  a + 1
  Debug b
  Debug a
EndProcedure
Test()
Ich sehe kein Problem!

Verfasst: 07.06.2007 15:24
von mk-soft
Guten Morgen :mrgreen:

Code: Alles auswählen

;Global a,b

a = #False
b = #True
;------------------
Debug "A=" + Str(a)
Debug "B=" + Str(b)

If a XOr b
  Debug "True"
EndIf

Debug "A=" + Str(a)
Debug "B=" + Str(b) + " <- Ok"
;------------------

Procedure test()

Debug "In Procedure"
If a XOr b
  Debug "True"
EndIf

Debug "A=" + Str(a)
Debug "B=" + Str(b) + " <- Bug wenn nicht 'Global a,b'"

EndProcedure

;------------------

test() 

Verfasst: 07.06.2007 15:37
von ts-soft
Warum nicht gleich so :mrgreen:
b wird verändert, nicht gut!

Dies:

Code: Alles auswählen

Procedure test()
  Protected a.l, b.l
  If a XOr b
    Debug "True"
  EndIf

  Debug "A=" + Str(a)
  Debug "B=" + Str(b) + " <- Bug"

EndProcedure

test()
hätte für die Demonstration gereicht, je weniger um so einfach zu erkennen, das drumrum irritiert nur

Verfasst: 07.06.2007 16:07
von Little John
ts-soft hat geschrieben:je weniger um so einfach zu erkennen, das drumrum irritiert nur
Da hast Du ein wahres Wort gelassen ausgesprochen. :)
Weil ich dachte dass das schon als Bug anerkannt ist, hatte ich mich gar nicht weiter bemüht, den "Kern" der Sache herauszuarbeiten. Danke an die beiden *-soft Profis, dass Ihr es gemacht habt.
Ich werde dann 'mal dieses letzte, sehr überzeugende Beispiel ins engl. Forum posten (falls nicht schon geschehen).

Gruß, Little John

Verfasst: 07.06.2007 16:10
von ts-soft

Verfasst: 07.06.2007 16:36
von Little John
Danke.

Ein weiterer Fehler ist ja üprigenz, :)
dass auf dem Debug-Bildschirm das
Wort "True" erscheint, die XOR-Operation
also auch falsch ausgewertet wird.

Gruß, Little John

Verfasst: 07.06.2007 16:42
von ts-soft
@Little John
Denn darfst Du melden, hab keine Zeit und Lust mehr :wink: