Seite 1 von 2

Parenthesis '(' are not allowed...

Verfasst: 16.03.2009 02:08
von ahab
Ich glaube hierbei handelt es sich um einen bug. Kann das jemand bestätigen? Ich habe diese Fehlermeldung in 4.20 noch nicht bekommen...

http://tim.blessuren.de/pb_bug.png

imagetags rausgenommen - Kaeru fecit

Verfasst: 16.03.2009 02:16
von ts-soft
Das als Bild zu posten ist ja wohl :freak:
Naja, die letzte Klammer gehört wohl woanders hin :wink:

PS: Das Bild sprengt auch noch das Boardlayout, abgesehen davon das Du
uns damit Extraarbeit machst.

Verfasst: 16.03.2009 02:25
von Kaeru Gaman
hab das bild mal rausgenommen... aber mir nicht die Arbeit gemacht, die zeile abzutippen.

und die arbeit, zu überprüfen ob ts sich irrt mach ich mir jetz auch nich.


@ahab

das nächste mal bitte

1. den Problemcode als text in CodeTags posten
2. die Fehlermeldung abtippen
und
3. nicht gleich in Bugs posten sondern erst mal nachfragen was da los ist.


so ich lass es erstmal hier damit du's findest, aber morgen verschieb ichs ins "Anfänger"...

Verfasst: 16.03.2009 02:29
von ts-soft
Vor allem möglichst einen Testcode erstellen, wo man den Bug
nachvollziehen kann. Eigene Fehler fallen einem dann meist selber auf, weil
der größte Bug sitzt meist an der Tastatur.

Und dies sollte man vorher auch mal lesen :wink:

Verfasst: 16.03.2009 02:57
von ts-soft

Code: Alles auswählen

Enumeration
  #String_Datei
  #String_SchluesselDatei
  #String_TextSchluessel
  #ButtonImage_Verschl
EndEnumeration

OpenWindow(0, #PB_Ignore, #PB_Ignore, 220, 150, "feel buggy", #PB_Window_SystemMenu)
StringGadget(#String_Datei, 5, 5, 200, 30, "was weiß ich")
StringGadget(#String_SchluesselDatei, 5, 40, 200, 30, "was weiß ich")
StringGadget(#String_TextSchluessel, 5, 75, 200, 30, "weiß immer noch nicht")
ButtonGadget(#ButtonImage_Verschl, 5, 110, 200, 30, "drück mich")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow : Break
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #ButtonImage_Verschl
          If GetGadgetText( #String_Datei ) And (GetGadgetText( #String_SchluesselDatei ) Or GetGadgetText( #String_TextSchluessel ))
          EndIf
      EndSelect
  EndSelect
ForEver
Das mußte in PB wohl aufteilen in 2 Ifs.
Ob das jetzt ein Bug ist?

// Nachtrag:
Da ich jetzt nen Testsource habe :mrgreen:
Unter 4.20 funzt das noch, kann ich bestätigen.

Verfasst: 16.03.2009 03:36
von ahab
sorry, dass ich das hier so schlampig gepostet habe. also nochmal meine frage. warum kann ich code dieser art nicht mehr kompilieren:

Code: Alles auswählen

If Str( 0 ) And ( Str( 1 ) Or Str( 2 ) ) 
   ...
EndIf
in pb 4.20 funktioniert es noch. @ts-soft: wenn das kein bug ist, warum dieses neue feature in pb 4.30?

Verfasst: 16.03.2009 03:52
von ts-soft
ahab hat geschrieben:in pb 4.20 funktioniert es noch. @ts-soft: wenn das kein bug ist, warum dieses neue feature in pb 4.30?
Du solltest alles vor // Nachtrag: ignorieren, weils davor keine
Testmöglichkeiten gab, die hab ich mir selber schaffen müssen.

Hab ja nicht mal ne anständige OCR-Software installiert.

Sieht aus wie ein Bug, um es mal so auszudrücken, wobei diese Vergleiche
ohne Angabe womit sowieso nicht immer funktionieren. Nicht gut lesbar.

ele mele muh, raus bist du, ist wohl ein bug

Verfasst: 16.03.2009 04:01
von ahab
da hast du recht, mit

Code: Alles auswählen

If Str( 0 ) <> "" And ( Str( 1 ) <> "" Or Str( 2 ) <> "" )
   ...
EndIf
funktioniert es. aber ich fand die möglichkeit ohne vergleiche in pb eigentlich ganz schön und fast noch besser lesbar. aber das ist wohl geschmackssache.

Verfasst: 16.03.2009 04:12
von Kaeru Gaman
liegt das vielleicht an Unicode?

unabhängig davon:

das "Ergebnis" dieser Beobachtung ist ja wohl, dass die Rückgabe einer Stringfunktion
nicht mehr ohne weiteres als #True oder #False interpretiert werden kann.

da #True und #False eigentlich Numerische Werte sind, kann es sich hier
sogar um die Bereinigung einer vorherigen Ungenauigkeit handeln.

Also, eventuell handelt es sich um einen Bug in der 4.2, der jetzt behoben wurde.
ob das tatsächlich so ist, wird freak bestätigen oder verneinen können...

Verfasst: 16.03.2009 09:20
von Little John
Aber was hat das mit den Klammern zu tun?
Denn ohne "zu viele" Klammern gibt es auch ohne Vergleichsoperator keinen Fehler, auch mit PB 4.30 (unabhängig von Unicode):

Code: Alles auswählen

If Str(1) Or Str(2)
   ; ...
EndIf
Das ist schon komisch ...
Ein Fehler ist da allerdings auf jeden Fall drin, denn "are" ist Plural, daher muss es "Parentheses" heißen. :mrgreen:

Gruß, Little John