Parenthesis '(' are not allowed...

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
ahab
Beiträge: 9
Registriert: 04.11.2008 22:39

Parenthesis '(' are not allowed...

Beitrag 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
Benutzeravatar
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

Beitrag 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.
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.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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"...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
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

Beitrag 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:
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.
Bild
Benutzeravatar
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

Beitrag 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.
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.
Bild
ahab
Beiträge: 9
Registriert: 04.11.2008 22:39

Beitrag 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?
Benutzeravatar
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

Beitrag 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
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.
Bild
ahab
Beiträge: 9
Registriert: 04.11.2008 22:39

Beitrag 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.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Little John

Beitrag 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
Antworten