AMIGA-RESISTANCE https://forum.amiga-resistance.info/ |
|
Start- und Zugriffsverzeichnis https://forum.amiga-resistance.info/viewtopic.php?f=38&t=1897 |
Seite 1 von 1 |
Autor: | Tipsi [ 01 Nov 2008, 11:56 ] |
Betreff des Beitrags: | Start- und Zugriffsverzeichnis |
In Hollywood ist es ja möglich, über Requester den User Verzeichnisse und Dateien auszuwählen. Ich möchte aber diese Auswahl durch das Programm tätigen, so dass der User nichts damit zu tun hat. Aber Franz wird das Programm "Guguck" in "dh2:programme" ablegen, Gerda in "dh0:test/Hollywood/Guguck" und ich brenne es auf CD im Verzeichnis "cd0:Vögel/Wald/Guguck". Darum meine Fragen: Wie kann ich herausfinden, von welchem Verzeichnis aus das Programm gestartet wurde? (so etwas wie TheOriginDirectory) Welcher Befehl sagt dem Programm, auf welches Verzeichnis gerade alle Zugriffe getätigt werden? (in dem Fall TheCurrentDirectory) Griessli Tipsi |
Autor: | Clyde [ 01 Nov 2008, 21:58 ] |
Betreff des Beitrags: | |
Hi Tipsi, das ist relative einfach möglich: Code: Alles auswählen t$ = GetFileAttributes("fileattr") ; hole die Dateiattribute der Datei Print(t$.path) ; Pfad inklusive Dateinamen Print("\n") p$ = PathPart(t$.path) Print(p$) ; Pfad ohne Dateinamen t$.path holt Dir dann das Verzeichnis zu der Datei. Ich hoffe, ich konnte Dir helfen. Gruß! |
Autor: | Tipsi [ 01 Nov 2008, 23:11 ] |
Betreff des Beitrags: | |
Salli Clyde Was soll ich machen ohne Dich? Es beruhigt mich, dass diese Funktion erst seit Version 3 integriert ist. Denn ich habe das Handbuch der V2.5 in der Nähe und blättere mich immer wieder hindurch. Aber ich wäre ehrlicherweise nicht auf die Idee gekommen, mit GetFileAttributes nach dem Startverzeichnis oder so zu suchen. Denn Attribute sind für mich bis jetzt immer die "Protections Flags" gewesen. Recht herzlichen Dank für Dein Beispiel, denn jetzt geht's wieder weiter. Griessli Tipsi |
Autor: | Clyde [ 01 Nov 2008, 23:15 ] |
Betreff des Beitrags: | |
Gern geschehen! Oh, hast Du Dir das Handbuch ausgedruckt? GetFileAttributes() wäre auch nicht mein erster Gedanke gewesen, aber bei meiner Suche war klar, dass ich nach Funktionen in der DOS library suchen muss. Und dort kam dann mehr oder weniger nur noch GetFileAttributes() in Frage. Aber es war interessant zu testen, ob es wirklich so funktioniert, wie ich es mir überlegt hatte, von daher, danke für die schöne Aufgabe. Gute Nacht! |
Autor: | Tipsi [ 16 Nov 2008, 22:06 ] |
Betreff des Beitrags: | |
Salli Clyde Als ich Andreas meinen Wunsch mitteilte, diese zwei Funktionen in Hollywood einzubauen, bekam ich zur Antwort, dass beides schon interpretiert ist: TheOriginDirectory$ = GetFileAttributes("").Path Nach einem Verzeichniswechsel kann man mit dem selben Befehl herausfinden, auf welches Verzeichnis das Programm zugreift: TheCurrentDirectory$ = GetFileAttributes("").Path Und das Witzige (oder Schlimme) ist: Es steht mehr oder weniger auch in der Dokumentation zu diesem Befehl. > Oh, hast Du Dir das Handbuch ausgedruckt? Ja, aber eben nur zur Version 2.5. Da mein Englisch alles andere als brauchbar ist, muss ich den Text in den Händen halten können. Griessli Tipsi |
Autor: | Clyde [ 16 Nov 2008, 22:10 ] |
Betreff des Beitrags: | |
Ah ja, prima Abkürzung! Danke für den Hinweis! Wie kommst Du denn mit Deinem Projekt voran? Gruß, Clyde |
Autor: | thomas [ 17 Nov 2008, 08:13 ] | |
Betreff des Beitrags: | ||
Das sollte wohl eher GetFileAttributes("PROGDIR:").Path heißen. Es kann nämlich durchaus sein, daß beim Start das aktuelle Verzeihnis nicht das Programmverzeichnis ist. Gruß Thomas |
Autor: | Tipsi [ 17 Nov 2008, 18:01 ] |
Betreff des Beitrags: | |
Salli Thomas und Clyde @Tomas Soviel ich mitbekommen habe, funktioniert diese Methode bis zu dem Punkt, wo der erste Verzeichniswechsel stattfindet. Für diesen Zweck ist mir bis jetzt nur ChangeDirectory als Möglichkeit bekannt. Darum muss der GetFileAttributes Befehl vorher aufgerufen werden, damit das Startverzeichnis noch ausgelesen werden kann. @Clyde Naja, mit dem Programm geht es langsam vorwärts. Die normalen 25'000 Karten kann es schon ausspucken. Ich hoffe, dass am Dienstag mein normaler Internetzugang wieder läuft, dann kann ich mehr Infos liefern. Griessli Tipsi |
Autor: | thomas [ 18 Nov 2008, 12:48 ] | |
Betreff des Beitrags: | ||
Das meine ich ja. Das Verzeichnis kann sozusagen schon gewechselt sein, wenn das Programm gestartet wird. Dann funktioniert die Methode von Anfang an nicht. Wenn du z.B. das Programm aus der Shell aufrufst: cd sys:tools run work:hollywood/meinprogramm Dann zeigt "" auf sys:tools, das Programm ist aber in Work:hollywood. Das gleiche erreichst du in der Workbench, wenn du zuerst ein Projekt-Icon anklickst, die Shift-Taste festhältst und dann das Programm doppelklickst. Oder wenn du ein Projekt öffnest, das das Programm als Default-Tool hat. Dann ist das aktuelle Verzeichnis das des Projekts, nicht das des Programms. PROGDIR: zeigt dagegen immer auf das Programmverzeichnis. Gruß Thomas |
Autor: | Clyde [ 18 Nov 2008, 13:57 ] |
Betreff des Beitrags: | |
Hi Thomas, ich habe das gerade mal hier nachvollzogen, und ihr habt beide Recht. Nutze ich aber Tipsis Variante mit leerem String, so wird mir immer das richtige, von Tipsi gewünschte Startverzeichnis angezeigt, auch wenn ich vorher in der Shell nach Sys:tools oder sonstwohin gewechselt habe. Anders sieht es natürlich aus, wenn ich innerhalb des Hollywood-Skripts das Verzeichnis wechsle, bevor ich GetFileAttributes("").Path aufrufe, aber darauf ist Tipsi ja auch schon eingegangen. Die sichere Variante ist aber Deine, klar. Aber eigentlich auch nur, wenn man die compilierte exe startet! Man kann seine HW-Skripte ja auch über den Hollywood-Interpreter starten - da würde dann Deine Variante wieder fehlschlagen, da so der Pfad zum Hollywood-Interpreter angezeigt werden würde; Tipsis Variante hingegen zeigt weiterhin zum richtigen (Skript)-Verzeichnis. Kommt halt bissl auf den Anwendungszweck an, aber es ist gut zu wissen, welche Möglichkeiten es gibt. Dieser Assign (?) "Progdir:" war mir gänzlich neu. Danke dafür! |
Autor: | p-OS [ 27 Nov 2008, 10:08 ] |
Betreff des Beitrags: | |
Der spezielle Assign PROGDIR: wurde mit AmigaOS 2.0 eingeführt. eine echte Erleichterung. Offensichtlich aber wirklich nicht jedem bekannt. Immer wieder erscheinen Programme, die einen eigenen Assign auf das Programmverzeichnis benötigen... |
Seite 1 von 1 | Alle Zeiten sind UTC |
Powered by phpBB® Forum Software © phpBB Limited Deutsche Übersetzung durch phpBB.de |