Relative Pfade

Hallo an Alle!

Ich verzweifle gerade an relativen Pfadangaben in ArcView...

1. müsste ich einen Dateipfad im Script als relativen Pfad gestalten

2. müsste ich das ganze Projekt unter einem relativen Pfad speichern (ohne Extention oder Zusatzprogramme einladen zu müssen)

Vielleicht kann mir jemand helfen. Wie schon im anderen Beitrag sind meine Avenue Kenntnisse leider noch ziemlich beschränkt...
Hi Sven,

in der APR-Datei darf man meines Wissens die Syntax mit ../ verwenden, um relative Pfade fuer Dateinamen anzugeben. Falls das in Avenue auch geht, so musst du erst das Arbeitsverzeichnis bestimmen (aProject.GetWorkDir) bzw. setzen (SetWorkDir).

Ich denke aber, dass du vom Projektverzeichnis ausgehen moechtest. Daher hilft dir vielleicht folgender Code weiter:

theProjFilename = av.GetProject.GetFilename
theProjDir = theProjFilename.Clone
theProjDir.StripFile
' eine Ebene hoeher
' theProjDir.StripFile
' noch eine Ebene hoeher
' theProjDir.StripFile
Msgbox.Info(theProjDir.AsString, "")

der das Verzeichnis ausgibt, in dem sich dein Projekt befindet. Achtung: Solltest du auf die Idee kommen, das Skript zu kuerzen (z. B. mit einer Formulierung wie aProject.GetFilename.StripFile), dann geht das Projekt kaputt! Dann wird naemlich der FILENAME deines Projektes auf ein Verzeichnis gesetzt! Hier springt sozusagen die CLONE-Methode ein.

Viel Erfolg und Gruss

Uwe
2. müsste ich das ganze Projekt unter einem relativen Pfad speichern (ohne Extention oder Zusatzprogramme einladen zu müssen)

Ich würde dir empfehlen, die MemoTools zu laden und damit das Projekt relativ abzspeichern, weil hier manches an nützlichem Fehlecheck durchgeführt wird (es gibt einiges an Voraussetzungen, um ein Projekt vernünftig mit relativen Pfaden zu versehen). Du kannst die Extension später aus dem Projekt entfernen, indem du die apr in einem Texteditor öffnest und die 3. Zeile "Dependencies..." löscht:

/3.2
(ODB.1
Dependencies:$AVEXT/memo_tools.avx\n"
FirstRootClassName:"Project"
...


Alternativ kannst du das Skript aus den MemoTools als Systemscript hinzuladen, die Erweiterung herausnehmen und dann das Projekt mit dem Script umspeichern
...

Natürlich kannst du die Projektpfade auch im Texteditor ersetzen, siehe diesen Thread
mmmhhh... das kann ich nur mal an einem extra-Rechner testen.

Mein Problem liegt darin, dass ich immer im Computerpool arbeiten muss und dort die Software nicht verändern kann, da die Lizenzen auf einem Server liegen.

Dennoch Dank an Euch - ich werd's versuchen.
Dafür brauchst die Software nicht zu "verändern" ... ...