BUG: XOr-Operation zerstört Werte von Protected-Variablen !
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Es gibt keine boolsche Algebra in PB. Wenns geht ist es Zufall. Nur im
zusammenhang mit If macht es Sinn.
zusammenhang mit If macht es Sinn.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

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.
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.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
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()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Guten Morgen

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()
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Warum nicht gleich so
b wird verändert, nicht gut!
Dies:hätte für die Demonstration gereicht, je weniger um so einfach zu erkennen, das drumrum irritiert nur

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()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Da hast Du ein wahres Wort gelassen ausgesprochen.ts-soft hat geschrieben:je weniger um so einfach zu erkennen, das drumrum irritiert nur

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
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> falls nicht schon geschehen
http://www.purebasic.fr/english/viewtop ... 479#198479
http://www.purebasic.fr/english/viewtop ... 479#198479
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
@Little John
Denn darfst Du melden, hab keine Zeit und Lust mehr
Denn darfst Du melden, hab keine Zeit und Lust mehr

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
