Schreibfehler, andere offensichtliche Fehler in der PB-Hilfe

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Website kann nicht angezeigt werden.
Diese Meldung kommt wenn ich in der FTP Lib auf ExamineFTPDirectory und dann in der Beschreibung auf FTPDirectorySize() drücke.

:allright:
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 »

X360 Andy hat geschrieben:Website kann nicht angezeigt werden.
Diese Meldung kommt wenn ich in der FTP Lib auf ExamineFTPDirectory und dann in der Beschreibung auf FTPDirectorySize() drücke.

:allright:
Der Fehler ist wohl, es müßte FTPDirectoryEntrySize() heissen, derselbe
Fehler mit FTPDirectory(Entry)Date()
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 »

die Hilfe zu DrawingBuffer() ist fehlerhaft.
Deutsch hat geschrieben:Gibt die 'SpeicherAdresse' des Zeichenbuffers ("DrawingBuffer") zurück. Diese befindet sich im Videospeicher, wenn die Ausgabe auf ScreenOutput() oder SpriteOutput() erfolgt. Eine sehr schnelle Pixel-Manipulation ist dadurch möglich.
English hat geschrieben:Returns the MemoryAddress of the drawing buffer. It can be directly in video memory if the output is ScreenOutput() or SpriteOutput() and allows very fast pixel manipulation.
die Formulierung ist eindeutig so, als sei DrawingBuffer eine allgemein zugängliche Funktion,
und nur im Sonderfall des Zugriffs auf ScreenOutput oder SpriteOutput würde er sich im Videospeicher befinden.

das ist falsch!

Offensichtlich liefert die Funktion ausschließlich für Screen- und Sprite-Output eine Adresse zurück.

die Beschreibung ist eine Mogelpackung.
Normalerweise macht man sich lächerlich, wenn man die Anleitung nicht liest.
hier kann man sich lächerlich machen, weil man die Anleitung gelesen hat.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andesdaf
Moderator
Beiträge: 2661
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

am Ende der "SysTray.pb" steht ein überflüssiges Prozentzeichen:

Code: Alles auswählen

EndIf %
Win11 x64 | PB 6.10 (x64)
Andesdaf
Moderator
Beiträge: 2661
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

grad noch was gefunden :lol:

Die Hilfe zu StatusBarImage() wiederspricht sich:
Definiert das angegebene 'Feld', um ein Icon anzuzeigen. Das Icon muss im 16x16 Format vorliegen. 'ImageID' kann einfach mittels LoadImage() oder ImageID() ermittelt werden. Wenn ein Feld ein Icon anzeigt, dann wird es keinen Text anzeigen. 'Aussehen' ist optional und kann verwendet werden, um das Aussehen des Feldes mit folgenden Werten zu beeinflussen:
#PB_StatusBar_Raised : erhabene Ränder
#PB_StatusBar_BorderLess : ohne Ränder
#PB_StatusBar_Center : Text im Feld zentrieren
#PB_StatusBar_Right : Text im Feld nach rechts ausrichten
Win11 x64 | PB 6.10 (x64)
Little John

Beitrag von Little John »

Entweder in GetXMLAttribute() ist ein Bug in dem Sinne, dass die Funktion nicht mit der Dokumentation übereinstimmt, oder die Dokumentation ist fehlerhaft.
Hilfe von PB 4.30 hat geschrieben:Nur Knoten vom Typ #PB_XML_Normal können Attribute haben. Für alle anderen Knoten-Typen gibt diese Funktion leere Strings zurück.
Das stimmt nicht: Bei anderen Knoten-Typen erzeugt PB einen Fehler (getestet mit PB 4.30 x86 unter Windows und Linux), siehe folgenden Beispielcode:

Code: Alles auswählen

EnableExplicit

Define Xml, Main, Item

; -- Create
Xml = CreateXML(#PB_Any)
Main = CreateXMLNode(RootXMLNode(Xml))
SetXMLNodeName(Main, "root")

Item = CreateXMLNode(Main)
SetXMLNodeName(Item, "item")
SetXMLAttribute(Item, "id", "1")
SetXMLNodeText(Item, "Cat")

Item = CreateXMLNode(Main, -1, #PB_XML_CData)
SetXMLNodeText(Item, "Did you know: 3 < 5 ?")

; -- Show
Item = ChildXMLNode(Main)
While Item
   Debug GetXMLAttribute(Item, "id")
   Debug GetXMLNodeText(Item)
   Item = NextXMLNode(Item)
Wend
Gruß, Little John
Little John

Beitrag von Little John »

Ich hatte offenbar vergessen, es auch hier zu posten:
In der (Englischen und Deutschen) Hilfe für PB 4.30 wird nicht erwähnt, dass Hex() optional einen zweiten Parameter haben kann -- siehe engl. Forum. ( freak hatte das dort letztes Jahr quasi als Weihnachtsgeschenk bekanntgegeben. ;-) )

Code: Alles auswählen

Debug Hex(-1)
Debug Hex(-1, #PB_Quad)
Debug Hex(-1, #PB_Long)
Debug Hex(-1, #PB_Word)
Debug Hex(-1, #PB_Byte)
Gruß, Little John
Andesdaf
Moderator
Beiträge: 2661
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

ühm... Gadget.pb nutzt eine Konstante, die zwar definiert ist, aber von keinem
Gadget unterstützt wird:

Code: Alles auswählen

#PB_EventType_ReturnKey
bitte mal streichen.

Kann vorkommen, dass das schon mal genannt wurde aber ich hatte jetzt
keine Lust den ganzen Thread zu durchsuchen.
Win11 x64 | PB 6.10 (x64)
Andesdaf
Moderator
Beiträge: 2661
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

ReceiveHTTPFile()
In der Hilfe dazu ist eine seltsame Formulierung:
Lädt eine Datei von der angegebenen URL$ auf Disk herunter. Wenn die URL$ nicht gefunden wurde oder ein anderer Fehler auftrat, wird 'Ergebnis' gleich 0 sein.
wäre es nicht besser zu schreiben:
Lädt eine Datei von der angegebenen URL$ auf die Disk herunter. Wenn die URL$ nicht gefunden wurde oder ein anderer Fehler auftrat, wird 'Ergebnis' gleich 0 sein.
oder am Besten gleich Festplatte schreiben.
Win11 x64 | PB 6.10 (x64)
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Hi,

Ich hätte da auch noch einen vorschlag zur verbesserung der folgenden Befehls Beschreibung:

ReceiveFTPFile()
SendFTPFile()


Hier wird zwar der Asynchron-Parameter erwähnt, jedoch nicht welchen wert
dieser enthalten muß. Vielleicht sollte man hier doch besser mit bei schreiben
das man #True oder #False angeben kann.
Antworten