[Tustep-Liste] [TUSCRIPT] Unterordner in Programm erstellen + Fehlermeldung

Kuno Schälkle schaelkle at zdv.uni-tuebingen.de
Di Jan 17 16:02:56 CET 2017


Lieber Herr Hoffert,

> Weitere Probleme – und Lösungsansätze – welches sich bei meinen Versuchen auftaten:
> * Pfadunterschiede zwischen Betriebssystemen. Hier kann eine Abfrage nach dem Beginn der TUSTEP_DSK (erstes Zeichen = Buchstabe oder "/") helfen einen gültigen Pfad zu bauen -> ("\" vs. "/" im Verzeichnispfad)

Mir ist nicht klar, an welcher Stelle TUSTEP dies abfragen sollte.

> * Groß- und Kleinschreibung: "wahre" Betriebssysteme machen Unterscheidungen zwischen Groß- und Kleinschreibung. Dies funktioniert im Prinzip auch in TUSTEP – mit einer Ausnahme: einige Systemvariablen werden in Großbuchstaben ausgegeben. In meinem Beispiel liegt mein Projekt im Verzeichnis "TUSTEP_DSK/projekt/" und TUSTEP_PRJ gibt "PROJEKT" aus.

An welcher Stelle wird sie in Großbuchstaben ausgegeben?
Kann es sein, dass Sie die Variable so definiert haben?
Bei mir wird sie in Kleinbuchstaben ausgegeben, so wie
ich sie definiert habe.

> Nun zurück zum eigentlichen Problem:
> 
> Ich habe ein Makro, welches eine angegebene Datei verarbeitet und abhängig von den gewünschten Daten eine Vielzahl von Dateien produziert, welche wiederum später weiterverarbeitet werden. Um eine gewisse Übersicht zu erhalten möchte ich diese in einem eigenen (Unter-) Ordner ablegen. Diesen bilde ich abhängig vom aufgerufenen Dateinamen.
> 
> SET pfad = EXTRACT (datei,0,":.:")	~ Extrahieren des Dateinamens
> SET pfad = SHORTEN (pfad,0,"",5)	~ Kürzen auf TUSTEP-Größe
> SET pfad = "NG_{pfad}"			~ zusätzliche Markierung
> FETCH/SYSTEM stTraeger = TUSTEP_DSK	~ Auslesen des Trägers
> 
> Jetzt kann ich sowohl mit …
> DEFINE/VOLUME MN_TR = "{stTraeger}/projekt/{pfad}"
> SET status = CREATE ("-",PROJECT,MN_TR)
> 
> … als auch mit
> DEFINE/VOLUME ST_TR = "{stTraeger}/projekt"
> SET status = CREATE (pfad,PROJECT,ST_TR)
> 
> meinen gewünschten Ordner unterhalb von "projekt" anlegen, doch wie greife ich darauf zu? Wenn ich versuche mittels CREATE eine Datei anzulegen …
> SET status = CREATE (datei,fdf-p,MN_TR)
> 
> … dann erhalte ich die Fehlermeldung …
> "Projekt PROJEKT auf Träger MN_TR nicht gefunden“

Sie können z.B. wie folgt vorgehen:

SET pfad = EXTRACT (datei,0,":.:")      ~ Extrahieren des Dateinamens
SET pfad = SHORTEN (pfad,0,"",5)        ~ Kürzen auf TUSTEP-Größe
SET pfad = "NG_{pfad}"                  ~ zusätzliche Markierung
FETCH/SYSTEM stTraeger = TUSTEP_DSK     ~ Auslesen des Trägers

DEFINE/VOLUME MN_TR = "{stTraeger}/projekt"
SET status = CREATE ("{pfad}", PROJECT, MN_TR)
SET status = CREATE ("{pfad}*{datei}", fdf-p, MN_TR)

> Ebenfalls funktioniert ein Auslesen von MN_TR mittels …
> FETCH/SYSTEM variable = MN_TR
> … nicht.

Mit DEFINE/VOLUME wird keine Systemvariable definiert,
sondern nur eine temporäre (d.h. während der Abarbeitung
des Makro bekannte) Variable, die als Träger verwendet
werden kann.

Mit freundlichen Grüßen
Kuno Schälkle



Mehr Informationen über die Mailingliste Tustep-Liste