Code: Alles auswählen
a = *mem + ((currentpos-beginpos) * 2)
char.i = PeekB(a)
Code: Alles auswählen
char.i = PeekB(*mem + ((currentpos-beginpos) * 2))

Code: Alles auswählen
a = *mem + ((currentpos-beginpos) * 2)
char.i = PeekB(a)
Code: Alles auswählen
char.i = PeekB(*mem + ((currentpos-beginpos) * 2))
Code: Alles auswählen
*mem = AllocateMemory(1024)
RandomSeed(100)
RandomData(*mem, 1024)
currentpos = 102
beginpos = 12
a = *mem + ((currentpos-beginpos) * 2)
char.i = PeekB(a)
Debug char
; - - - - - -
*mem = AllocateMemory(1024)
RandomSeed(100)
RandomData(*mem, 1024)
currentpos = 102
beginpos = 12
char.i = PeekB(*mem + ((currentpos-beginpos) * 2))
Debug char
Code: Alles auswählen
EnableExplicit
Global a = 0
Global b = 1
Global c = 10
Debug a + b * ( c / 100 * 3600 + c % 100 * 60 )
; Ausgabe = 0 (Falsch!)
Debug 0 + b * ( c / 100 * 3600 + c % 100 * 60 )
; "a" durch "0" ersetzt -> Ausgabe = 600 (OK!)
Debug a + 1 * ( c / 100 * 3600 + c % 100 * 60 )
; "b" durch "1" ersetzt -> Ausgabe = 600 (OK!)
Debug a + b * ( 10 / 100 * 3600 + 10 % 100 * 60 )
; "c" durch "10" ersetzt -> Ausgabe = 600 (OK!)
Debug a + b * c / 100 * 3600 + b * c % 100 * 60
; Klammer aufgelöst -> Ausgabe = 600 (OK!)
Code: Alles auswählen
Debug a + b * ( c / 100 * 3600 + c % 100 * 60 )
; Ausgabe = einmal 0 (FALSCH); einmal 600 (OK!)
Code: Alles auswählen
If #PB_MessageRequester_Yes = MessageRequester("blind", "blind", #PB_MessageRequester_YesNo)
Debug "Yes!" ; Ausgabe bei Buttonclick "No"! FALSCH
Else
Debug "No!" ; Ausgabe bei Buttonclick "Yes"! FALSCH
EndIf
Code: Alles auswählen
If MessageRequester("blind", "blind", #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
Debug "Yes!" ; Ausgabe bei Buttonclick "Yes"! RICHTIG
Else
Debug "No!" ; Ausgabe bei Buttonclick "No"! RICHTIG
EndIf
Das ist ein Bug. Auch wenn ich das a am Ende addiere oder ganz weglasse, erhalte ich das richtige Ergebnis (PB 4.51 unter Windows XP x86):Regenduft hat geschrieben:Folgender (vermutlicher) Bug ist (bei mir) reproduzierbar:Habe ich hier ein Grundlegendes Low-Level-Verständnisproblem oder ist das ein Bug?Code: Alles auswählen
EnableExplicit Global a = 0 Global b = 1 Global c = 10 Debug a + b * ( c / 100 * 3600 + c % 100 * 60 ) ; Ausgabe = 0 (Falsch!) Debug 0 + b * ( c / 100 * 3600 + c % 100 * 60 ) ; "a" durch "0" ersetzt -> Ausgabe = 600 (OK!) Debug a + 1 * ( c / 100 * 3600 + c % 100 * 60 ) ; "b" durch "1" ersetzt -> Ausgabe = 600 (OK!) Debug a + b * ( 10 / 100 * 3600 + 10 % 100 * 60 ) ; "c" durch "10" ersetzt -> Ausgabe = 600 (OK!) Debug a + b * c / 100 * 3600 + b * c % 100 * 60 ; Klammer aufgelöst -> Ausgabe = 600 (OK!)
Code: Alles auswählen
EnableExplicit
Define a = 0
Define b = 1
Define c = 10
Debug a + b * ( c / 100 * 3600 + c % 100 * 60 )
; Ausgabe = 0 (falch!)
Debug b * ( c / 100 * 3600 + c % 100 * 60 ) + a
; Ausgabe = 600 (richtig)
Debug b * ( c / 100 * 3600 + c % 100 * 60 )
; Ausgabe = 600 (richtig)
Tippfehler schliesse ich aus. Hatte natürlich in der Variablenliste nachgesehen.das klingt zwar stark nach Tippfehler, aber es ist evtl. möglich, dass es da wirklich einen seltsamen schwer reproduzierbaren Bug gibt... Betonung: EVENTUELL!
Hoffentlich merkt niemand, das falsch falsch geschrieben istmk-soft hat geschrieben:Habs mal ins englische Bugforum gestellt