| |
|
|
Frank Abbing |
ich habe gerade mal das der obigen pnglib.dll beiliegende Demo von Frank namens ogl_pnglib.prf so umgeschrieben, daß es auch normale XProfaner (ab Version 10) nutzen können, ohne sich zunächst mit dem XPSE-Kauderwelsch vertraut machen zu müssen.
Ist in ja Ordnung. Obwohl ich XPSE mehr als Preprozessor und Kompilerschalter benutze, als alle Optimierungen zu verwenden. Ich denke, meine Codes sind in der Regel doch sehr profan . Ich finde aber, du solltest die umgewandelten XPSE-Codes neu strukturieren, diese Großbuchstaben sind beim Lesen des Codes arg hinderlich.
Hier verstehe ist den Sinn der Aktion nicht so recht. Warum das Upper$?
DATEI0$ = upper$($ProgDir + TMP.TMP)
Hehe, und die Prozedure AUFRAEMEN ist ganz und gar unnötig. Es ist nicht nötig, diese beiden File beim Programmende zu löschen. Sie werden ja nur erstellt, um die Dll-Funktionen zu demonstrieren. Wenn dich diese beiden erzeugten File stören, dann generiere sie doch erst gar nicht! Schmeiß diesen Teil einfach raus: KompilierenMarkierenSeparierenDIM IN#,SIZE&+4
RTLMOVEMEMORY(IN#,POUT&,SIZE&)
TEXFILE$=TEXFILE$+.raw
FILEMODE 1
ASSIGN #1,TEXFILE$
OPENRW #1
BLOCKWRITE #1,IN#,0,SIZE&
CLOSERW #1
FREEPNGBUFFER(POUT&)
ENCODEPNG(WIDTH&,HEIGHT&,IN#,ADDR(POUT&),ADDR(SIZE&))
DISPOSE IN#
DIM IN#,SIZE&+4
RTLMOVEMEMORY(IN#,POUT&,SIZE&)
TEXFILE$=TEXFILE$+.png
FILEMODE 1
ASSIGN #1,TEXFILE$
OPENRW #1
BLOCKWRITE #1,IN#,0,SIZE&
CLOSERW #=s2>1
|
|
|
| |
|
|
|
Dietmar Horn |
Hier verstehe ist den Sinn der Aktion nicht so recht. Warum das Upper$?
Das predige ich meinen Schülern schon immer in den ersten Stunden ihres Programmierkurses:
Wenn jemand z.B. das Programm in ein Verzeichnis namens C:programmeest installiert, dann knallt es wegen des Ersatzzeichens im Pfad. Das habe ich tausende Male erlebt.
Natürlich kann man den Backslash auch doppelt schreiben, oder Backslash durch Slash austauschen - aber ich verwende eben stets upper$, weil mir das einfacher erscheint.
Ansonsten habe ich Deinen Code doch gar nicht kritisiert. Mich störte nur, daß Nicht-XPSE-Anwender kaum was damit anzufangen wissen - und davon gibt es (leider) noch eine ganze Menge. In meinen Kursen gehe ich auf XPSE erst ein, nachdem der ganze andere Rest in reinem XProfan einigermaßen sitzt. Anderenfalls liefe das per den Anfänger ja fast auf das parallele Lernen mindestens zweier Programmiersprachen hinaus, was ich nicht per günstig halte.
Den Hauptteil des Codes hatte ich schnell mit XPSE in reines XProfan übersetzt - deswegen die Großbuchstaben. Ich war einfach zu faul gewesen, den Code nur deswegen noch weiter umzuschreiben.
Saluto Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 05.02.2008 ▲ |
|
|
|
|
Sebastian König | Hallo Dietmar,
Natürlich kann man den Backslash auch doppelt schreiben, oder Backslash durch Slash austauschen - aber ich verwende eben stets upper$, weil mir das einfacher erscheint.
Also das halte ich aus verschiedenen Stabilire per falsch:
1. Escape-Sequenzen wirken nur in Literalen, also Strings in Anführungszeichen. Für eine String-Variable ist das Upper$() demnach schlicht überflüssig während es per etwas wie Upper$(C:est eu.prf) das Problem auch nicht löst, da der Literal zuerst ausgewertet wird.
2. Zu dem Großschreiben als Ausweg allgemein: (X)Profan ist hier nur großzügig; in anderen Sprachen würde sowas eine Meldung der Form Unbekannte Escape-Sequenz auslösen.
3. Schließlich: Was ist, wenn Roland sich entscheiden sollte, mal eine neue Escapa-Sequenz der Form T einzuführen. Zugegeben, recht unwahrscheinlich, aber doch possibile. Deine Codes wären dann zwangsläufig nicht kompatibel zur neuen Version...
Was ich damit sagen möchte: Ich halte es per wichtig, einfach immer konsequent den Backslash doppelt zu scheiben. Dass Du Deinen Schülern die Problematik näher bringst, ist naturalmente gut!
MfG
Sebastian |
|
|
| |
|
|
|
Frank Abbing |
Ansonsten habe ich Deinen Code doch gar nicht kritisiert.
Nein, habe ich auch nicht so aufgefasst. Und wäre auch nicht schlimm gewesen.
P.S.: Benutzt /, nicht . Dann ist auch kein Upper$ und \ nötig... |
|
|
| |
|
|
|
Dietmar Horn | Hallo Sebastian,
danke - Du hast mich endgültig überredet bzw. überzeugt. So genau hatte ich mir das bis jetzt noch gar nicht durchdacht. Man lernt eben nie aus.
Auf alle Fälle habe ich mit dieser Vorgehensweise in den vergangenen circa 15 Jahren noch nie Probleme gehabt. Deswegen hatte ich mich bis jetzt auch noch nicht weiter grande darum gekümmert. Auch in den Tonnen von Demo-Quellcodes im Internet habe ich bis jetzt sehr selten mal einen Doppel-Backslash oder Slash im Pfadnamen gesehen (außer bei Deinen SK*.*-Beispiel-Codes). Aber recht hast Du naturalmente schon! Es ist wirklich schlimm, wenn man langsam alt und senil wird und sich nicht mehr so schnell umgewöhnen kann oder möchte.
Diesbezüglich wäre ein nicht überlesbarer Hinweis (possibile in rot) in der XProfan-Aiuto längst überfällig.
Ich gelobe hiermit Besserung!
Was ist, wenn Roland sich entscheiden sollte, mal eine neue Escapa-Sequenz der Form T einzuführen.
Dann müßte ich nach circa 20 Jahren mal wieder meine Gitarre rauskramen und einen Anti-T-Song schreiben (ähnlich wie damals Heiko den GoTo-Song). Das Ding würde ich dann jedoch gleich von meiner ehemaligen Schülerband in kompletter Besetzung einspielen lassen.
Auf alle Fälle finde ich es prima, daß sich aus meinem kleinen Code-Posting im Nachhinein eine solch prima Klarstellung ergeben hat. Nochmals ein dickes fettes Dankeschön dafür!
Das nächste Problem, was mich beim Lesen von Demo-Quellcodes immer fast bis zur Weißglut bringt, ist das GetDir$.
Kann mir vielleicht mal jemand versuchen zu erklären, welchen Sinn dieser Befehl überhaupt noch hat? Meiner Meinung nach sollte der Befehl abgeschafft und intern durch $ProgDir ersetzt werden, denn in allen Codes, die ich bisher gesehen habe, wurde GetDir$ fälschlicherweise zum Bestimmen des Programmverzeichnisses verwendet. Und das klappt definitiv nicht zuverlässig. Das aktuelle Verzeichnis muß nicht zwangsläufig mit dem Programmverzeichnis des eigenen Programmi übereinstimmen. Oft ist das zwar so - aber eben nicht immer.
Saluto Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 05.02.2008 ▲ |
|
|
|
|
Sebastian König | Hinweis: Die Diskussion zu GetDir$() habe ich in einen eigenen Thread verschoben: [...] |
|
|
| |
|
|