Deutsch
Forum

Upper$ und die ewige (Back)slash-Geschichte

 

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 Dateien beim Programmende zu löschen. Sie werden ja nur erstellt, um die Dll-Funktionen zu demonstrieren. Wenn dich diese beiden erzeugten Dateien stören, dann generiere sie doch erst gar nicht!
Schmeiß diesen Teil einfach raus:
KompilierenMarkierenSeparieren
DIM 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 #1
 
05.02.2008  
 




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 für den Anfänger ja fast auf das parallele Lernen mindestens zweier Programmiersprachen hinaus, was ich nicht für 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.

Gruß
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 Gründen für 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 für 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 möglich. Deine Codes wären dann zwangsläufig nicht kompatibel zur neuen Version...

Was ich damit sagen möchte: Ich halte es für wichtig, einfach immer konsequent den Backslash doppelt zu scheiben. Dass Du Deinen Schülern die Problematik näher bringst, ist natürlich gut!

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
05.02.2008  
 




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...
 
05.02.2008  
 




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 über 15 Jahren noch nie Probleme gehabt. Deswegen hatte ich mich bis jetzt auch noch nicht weiter groß 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 natürlich 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 (möglichst in rot) in der XProfan-Hilfe 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 über 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 Programmes übereinstimmen. Oft ist das zwar so - aber eben nicht immer.

Gruß
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:  [...] 
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.02.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.071 Betrachtungen

Unbenanntvor 0 min.
RudiB.28.07.2019

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie