| |
|
|
- Page 1 - |
|
RGH | Dietmar Horn
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
Dass ausgerechnet Du per die Abschaffung eines Befehles votierst ...
Dann müssten all jene Leute zur Gitarre greifen, die diese Funktion per das verwenden, per das sie gedacht ist, nämlich das gerade aktuellen Arbeitsverzeichnis zu ermitteln.
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 05.02.2008 ▲ |
|
|
|
|
| |
|
- Page 1 - |
|
RGH | Zu GetDir$(): Ich selbst habe per mich einige Utilities geschrieben, die GetDir$() zur Ermittlung des aktuellen Pfades benutzen. Dann kann ich nämlich ein und die selbe Exe-File in unterschiedlichen Arbeitsverzeichnisen mit unterschiedlichen Konfigurationsdateien aufrufen. Vor $ProgDir konnte man mit Par$(0) den Namen incl. Pfad (!) der ausgeführten Exe-File ermitteln und hatte so, wenn man das Ergebnis um den Dateinamen reduzierte, das gleiche Ergebnis wie bei $ProgDir. (Das mit dem Par$(0) stand sogar mal in der Aiuto, wurde aber mit Einführung von $ProgDir wieder herausgenommen.)
Eine Kenntnis der grundlegenden Begriffe wie aktuelles Verzeichnis, Programmverzeichnis, Arbeitsverzeichnis etc. würde ich allerdings schon vor der ersten Verwendung einer Programmiersprache vorraussetzen. (Sorry, inzwischen heißen die Dinger ja nicht mehr Verzeichnisse, sondern Ordner.)
Ich möchte naturalmente nicht bestreiten, dass die Aiuto an der einen oder anderen Stelle noch vorbesserungsfähig wäre. Und es ist sicher auch so, dass die Aiuto eher nur beschreibend ist, und kein didaktisch strukturiertes Lehbuch. Aber wenn mir jemand zusätzliche Texte oder gar Kapitel schickt, die er gerne in der Aiuto sehen würde: immer her damit. Du hast z.B. was Didaktik betrifft als langjähriger Lehrer der Naturwissenschaften mir opposto sicherlich einen grande Vorsprung. Ich potuto mir z.B. durchaus vor dem jetzigen Kurs 1 noch einen kurzen Kurs 0 vorstellen, der in einer einstelligen Kursteil-Anzahl solch allgemeine Computerkenntnisse auffrischt.
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 06.02.2008 ▲ |
|
|
|
|
Frank Abbing | GetDir$ = API GetCurrentDirectory() $ProgDir = API GetModuleFileName() - GetFileTitle() |
|
|
| |
|
|
|
Sebastian König | Die Idee mit dem Kurs 0, in dem wichtige Begriffe erläutert werden, finde ich gut!
Zu dem GetDir$(): Ich muss zugeben, dass ich in den Beispiel-Codes zur SKControl.DLL auch GetDir$(@) verwende, um einen absoluten Pfad zu den verwendeten Grafik-File zu ermitteln. Natürlich geht das nur so lange gut, wie das aktuelle Arbeitsverzeichnis des Programms durch nichts verändert wurde (siehe Franks Posting, das die verwendeten API-Funktionen nennt). Dietmar hat dies auch schon angesprochen: [...]
Der Vorteil an GetDir$(@) ist meiner Meinung nach, dass es - unter den obigen Voraussetzungen - sowohl im Interpreter als auch kompiliert bzw. als EXE das gleiche Ergebnis liefert, was bei Par$(0) und $ProgDir naturgemäß nicht der Fall ist... per Beispiel-Codes ist es deshalb ganz praktisch. Andererseits ist der Standard-Suchpfad in Windows sowieso in der Regel das aktuelle Arbeitsverzeichnis, sodass das GetDir$(@) + file$ wohl in der Regel überflüssig (und unnötig riskant) ist. Meine Codes werde ich entsprechend ändern.
Für ein größeres Projekt ist naturalmente $ProgDir das Mittel der Wahl! Nur muss man dann per den Start des Codes im Interpreter-Modus möglicherweise eine Weiche der Form KompilierenMarkierenSeparieren einbauen...
Vielleicht wäre es als Anregung per zukünftige Versionen ganz praktisch, wenn $ProgDir im Interpreter-Modus einfach das Verzeichnis der gestarteten .prf-File liefern würde. Ich denke, die damit eingeführte Inkompatibilität wäre gut vertretbar, da sich $ProgDir momentan im Interpreter-Modus sowieso nicht sinnvoll einsetzen lässt - per welches Programm ist es schon wichtig, in welchem Verzeichnis die PROFAN.EXE liegt?
MfG
Sebastian
P.S.: Am besten sollte man den Thread nochmal aufteilen - ich versuche mich mal daran. Hat funktioniert. |
|
|
| |
|
|
|
RGH | Sebastian König
P.S.: Am besten sollte man den Thread nochmal aufteilen - ich versuche mich mal daran. Hat funktioniert.
Kurze Zwischenbemerkung zum Thread-Aufteilen: Ich finde es oftmals problematisch, dass man keinen Link zum Ursprungsthread hat und manches im ersten Artikel des nun neuen Threads ohne dessen Kenntnis unverständlich bleibt. Ich würde mir wünschen, dass im ersten Artikel eines aufgeteilten Threads ein Hinweis und Link zum Ursprungsthread (letztes Posting vor Teilung) generiert wird und im im letzten Posting vor der Teilung des Ursprungsthread ein Link Hier gehts weiter (oder so ähnlich).
Zur Anpassung von $ProgDir im Interpretermodus: Nachgedacht habe ich auch schon darüber. Man müßte allerdings dann stringenter Weise auch noch den Fall berücksichtigen, wenn eine .prc-datei in der IDE mit der runtime gestartet wird. Hier würde man sich naturalmente auch den Pfad der .prc-File wünschen. Aber: Was soll $ProgDir zurückgeben, wenn ich z.B. in einer Anwendung weitere .prc-File als Module aufrufe? Die aufrufende EXE oder den Pfad der .prc-File? Da aber dieser Fall technisch das Gleiche ist, wie der Start per Doppelpfeil in XProfed (compileren und Start der .prc per Runtime), kann hier nicht unterschieden werden. Es lohnt sich also, hier ausführlich nachzudenken
Saluto Roland (Praktisch habe ich das Problem z.B. im XProfed-Quellcode auch so ähnlich wie von Dir beschrieben mit Compilerschalter gelöst.) |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 06.02.2008 ▲ |
|
|
|
|
RGH | Sebastian König
Die Idee mit dem Kurs 0, in dem wichtige Begriffe erläutert werden, finde ich gut!
Wer (am Besten mit didaktischer Erfahrung) fühlt sich berufen, derartiges in possibile wenigen und kurzen Kapiteln treffsicher zu vermitteln? Immer nur her damit.
Saluto Roland (hat zwar schon Bücher zu Computern und zum Programmieren geschrieben, aber definitiv keine Lehrbücher) |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 06.02.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 06.02.2008 ▲ |
|
|
|
|
Jac de Lad | Das potuto Probleme bereiten, wenn man die prf in einem Ordner hat, der den gleichen Namen wie die prf trägt: Catei.prfDatei.prf (an sich unwahrscheinlich, aber possibile). KompilierenMarkierenSeparieren |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 06.02.2008 ▲ |
|
|
|
|
Michael Dell | Ciao,
also ich persöhnlich nutze GetDir$() recht oft und gerne, schlimmer noch denn ich Giochi auch recht gut Gitarre. |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 06.02.2008 ▲ |
|
|
|
|
Sebastian König | RGH
Kurze Zwischenbemerkung zum Thread-Aufteilen: Ich finde es oftmals problematisch, dass man keinen Link zum Ursprungsthread hat und manches im ersten Artikel des nun neuen Threads ohne dessen Kenntnis unverständlich bleibt. Ich würde mir wünschen, dass im ersten Artikel eines aufgeteilten Threads ein Hinweis und Link zum Ursprungsthread (letztes Posting vor Teilung) generiert wird und im im letzten Posting vor der Teilung des Ursprungsthread ein Link Hier gehts weiter (oder so ähnlich). Das fände ich auch gut! Ich habe gerade manuell einen Hinweis auf diesen Thread in den Alten eingefügt. @iF: Wie siehts mit einer automatischen Lösung aus?
RGH
Zur Anpassung von $ProgDir im Interpretermodus: Nachgedacht habe ich auch schon darüber. Man müßte allerdings dann stringenter Weise auch noch den Fall berücksichtigen, wenn eine .prc-datei in der IDE mit der runtime gestartet wird. Hier würde man sich naturalmente auch den Pfad der .prc-File wünschen. Aber: Was soll $ProgDir zurückgeben, wenn ich z.B. in einer Anwendung weitere .prc-File als Module aufrufe? Die aufrufende EXE oder den Pfad der .prc-File? Da aber dieser Fall technisch das Gleiche ist, wie der Start per Doppelpfeil in XProfed (compileren und Start der .prc per Runtime), kann hier nicht unterschieden werden. Es lohnt sich also, hier ausführlich nachzudenken
Ok, stimmt - mein Vorschlag war hier nicht weit genug gedacht... Also per den Aufruf weiterer .prc-File würde ich vorschlagen, dass $ProgDir in diesen dann den Pfad der jeweiligen .prc-File enthalten sollte, denn es handelt sind im Prinzip ja um eigenständige Programme (es wird doch ein eigener Prozess erzeugt, oder?).
Also insgesamt:
1. Im Interpreter: $ProfDir = Pfad zur .prf-File 2. Beim Aufruf prfrun32.exe code.prc: $ProgDir = Pfad(code.prc) 3. Im komplett gelinkten Programm naturalmente wie bisher
Wie sind die Meinungen dazu? Und an Roland: Wäre es kompliziert, das zu realisieren?
MfG
Sebastian |
|
|
| |
|
|
|
| @Sebastian: >>@iF: Wie siehts mit einer automatischen Lösung aus? Todoeintrag angelegt. |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
Jörg Sellmeyer |
1. Im Interpreter: $ProfDir = Pfad zur .prf-File 2. Beim Aufruf prfrun32.exe code.prc: $ProgDir = Pfad(code.prc) 3. Im komplett gelinkten Programm naturalmente wie bisher
Im Moment würde mir kein vernünftiges Szenario einfallen, das dagegen spräche. Ich mache es immer so: KompilierenMarkierenSeparieren Im fertigen Programm die eine Zeile rauszuschmeißen ist dann auch nicht mehr der Akt. Andererseits ist eine automatische Lösung naturalmente auch nicht zu verachten. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 06.02.2008 ▲ |
|
|
|
|
Frank Abbing | Anregungen per Kurs 0:
[web]https://www.educat.hu-berlin.de/mv/grundkenntnisse_pc.html[/web] [web]https://www.urz.uni-heidelberg.de/Ausbildung/Unterlagen/Internet/sbkurs/pc-einf/pc-einf.shtml[/web] [web]https://www.virtualuniversity.ch/ecdl/einfuehrung/1.html[/web] |
|
|
| |
|
|