Seite 9 von 18
Verfasst: 26.07.2009 17:06
von Little John
Bei PB 4.31 gibt es weder in der Hilfe noch bei den Beispielprogrammen ein
Beispiel für das Erzeugen einer XML-Datei. Da das nicht ganz intuitiv zu erledigen ist, wäre solch ein Beispiel IMHO wichtig, z.B. in der Hilfe beim Befehl
CreateXML(). Etwa so (wenn das denn richtig ist):
Code: Alles auswählen
Define xml, mainNode, item
xml = CreateXML(#PB_Any)
mainNode = CreateXMLNode(RootXMLNode(xml))
SetXMLNodeName(mainNode, "Zoo")
item = CreateXMLNode(mainNode)
SetXMLNodeName(item, "Tier")
SetXMLAttribute(item, "id", "1")
SetXMLNodeText(item, "Elefant")
item = CreateXMLNode(mainNode)
SetXMLNodeName(item, "Tier")
SetXMLAttribute(item, "id", "2")
SetXMLNodeText(item, "Tiger")
SaveXML(xml, "demo.xml")
Gruß, Little John
Verfasst: 30.07.2009 10:38
von Andesdaf
Nochmal vielen Dank für deine fleißige Arbeit!

Verfasst: 06.08.2009 23:19
von Kurzer
Huhu,
ich hab mir gerade mal in einem anderen Thread etwas Luft gemacht.. und Kaeru meinte richtigerweise, daß die Quintessenz des ganzen hier vieleicht mal rein könnte.
Als dann...
Wieso muß man in den Compileroptionen noch "UserLibThreadSafe" eintragen, wenn es doch den Klicker Threadsicheres Executable erzeugen gibt?
Die Hilfe schreibt dazu:
Threadsicheres Executable erstellen
Diese Option teilt dem Compiler mit, dass er eine spezielle Version von bestimmten Befehlen verwenden soll, um diese sicher zur Verwendung in Threads zu machen. Siehe die Thread Library für weitere Informationen.
Es steht nirgendwo erwähnt, daß man dort manuell "UserLibThreadSafe" eintragen muß, damit threadsichere UserLibs letztendlich auch benutzt werden. Ich ging davon aus, daß eine Userlib, die u.a. im Verzeichnis "UserLibThreadSafe" installiert ist, automatisch von PB benutzt wird, wenn der Klicker aktiviert wurde.
PS: Ebenso das Feld "Linker-Optionen-Datei". Da bin ich letztens auch nur zufällig über einen interessanten Foreneintrag gestolpert - und habe gelernt, daß PB den linker von Pelles C benutzt.
Was steht darüber in der Hilfe?
Linker-Optionen Datei
Hier kann eine Text-Datei definiert werden mit weiteren Kommandozeilen-Optionen, welche beim Erstellen des Executable an den Linker übergeben werden sollen. Die Datei sollte eine Option pro Zeile enthalten.
Das ist alles. Da kann man das auch gleich weglassen.
Aber vielleicht wird einfach nur davon ausgegangen, daß der geneigte PB Programmierer immer auch begnadeter C-Programmierer ist und mit Linkern, Objectdateien etc. vertraut ist.
Die Optionensyntax für so einen C-Linker wird aber vermutlich nicht standardisiert sein.
Ergo: Ohne zu wissen wie die genaue Syntax lautet ist das Feld für die Linker-Optionendatei irgendwie überflüssig.
Ich wär sehr stark dafür, daß auch solches "Insiderwissen" den Weg in die Hilfe findet.
(Und was man alles mit den Dateien im SDK machen kann wollte ich auch schon immer wissen *hüstel*)

Verfasst: 06.08.2009 23:39
von freak
Dieser "UserLibThreadSafe"-Kram ist kein Problem von PB und hat desshalb in der Hilfe überhaupt nichts zu suchen.
Verfasst: 06.08.2009 23:50
von Kurzer
Ich fände es trotzdem sinnvoll an der Stelle auf die "Tailbite-Libs-Problematik" hinzuweisen. Auch wenn es ursächlich nichts mit PB zu tun hat.
Letztendlich wird es dem User das Suchen nach der Ursache vereinfachen.
Verfasst: 16.08.2009 02:24
von Thorium
Die Beschreibung der Packerlib benötigt dringend einen zusätzlichen Absatz, der erläutert das für verschiedene Plattformen verschiedene Packalgos verwendet werden und somit nicht kompatibel sind!
Ich hab 3 Tage gebraucht da drauf zu kommen warum die x64 Version meines Ressourceloaders ums verrecken nicht die Ressourcen dekomprimieren will.
Ein Blick in die komprimierten Daten zeigt das der x64 Packer mit ZLib komprimiert und nicht mit JCalG1 wie in der Hilfe angegeben.
Verfasst: 22.08.2009 17:17
von Mok
Es könnte bei der Hilfe zu KeyboardPushed() und KeyboardReleased() auch dazugeschrieben werden, dass statt #PB_Key_All auch #PB_Any geht.
Verfasst: 22.08.2009 17:46
von Little John
Mok hat geschrieben:Es könnte bei der Hilfe zu KeyboardPushed() und KeyboardReleased() auch dazugeschrieben werden, dass statt #PB_Key_All auch #PB_Any geht.
Es ist wohl eher Zufall dass
#PB_Any ebenso wie
#PB_Key_All den Wert -1 hat. Es gibt in PB noch weitere Konstanten mit dem Wert -1, die könnte man dann ebenfalls nehmen.
Wenn allerdings Fantaisie-Software mal den Wert von
#PB_Key_All ändert, stört das nicht unsere Programme wenn wir an dieser Stelle tatsächlich
#PB_Key_All benutzt haben anstatt
#PB_Any oder andere Konstanten mit dem Wert -1. Das ist ja gerade der Witz mit solchen vordefinierten Konstanten (neben der besseren Lesbarkeit), dass man sich nicht darum zu kümmern braucht welche Werte sie haben.
Also:
#PB_Key_All ist der offizielle Wert an dieser Stelle, und wer etwas anderes benutzt braucht sich ggf. über Überraschungen nicht zu wundern. In der Hilfe hier noch andere Konstanten zu erwähnen die (zufällig) auch den Wert -1 haben, ergibt keinen Sinn.
Gruß, Little John
Verfasst: 22.08.2009 18:11
von Mok
@LittleJohn:
Ja, ok, aber ANY heißt auf deutsch soviel wie "irgendwas", ist es logisch, dass man bei KeyboardPushed(#PB_Any) eben "irgendwas" drücken muss.
Ok, darüber lässt sich auch streiten... vergessen wir's.
Verfasst: 31.08.2009 13:28
von Andre
@LittleJohn: dein Beispiel zu CreateXML() hat (in abgewandelter Form) seinen Weg in die Hilfe gefunden, danke!
