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

Michael Hoffert tustep_saw_hoffert at mhlkg.de
Di Jan 17 11:28:04 CET 2017


Lieber Herr Schälkle,
lieber Matthias,

vielen Dank für die Mithilfe.

> Aus historischen Gründen, darf in TUSTEP der Name
> eines „Unterordners", der nach einem Ordnername
> durch einen Backslash bzw. Schrägstrich angegeben
> wird, maximal 3 Zeichen lang sein (ich weiss, das ist
> nicht mehr zeitgemäß).

Hinzu kommt, daß der Projektname auch aus maximal 8+3 (4?) Zeichen 
bestehen darf. Im Prinzip TUSTEP-Grundwissen, aber manchmal muss man 
sich daran erinnern. :-)


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)

* 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. Ich kann also nicht einfach aus "TUSTEP_DSK/TUSTEP_PRJ" 
einen Pfad basteln.
Windows-Nutzer dürften dieses Problem nicht haben. Genauso wie all 
diejenigen, welche in weiser Voraussicht ihre Pfade entsprechend anlegen.


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"

Ebenfalls funktioniert ein Auslesen von MN_TR mittels …
FETCH/SYSTEM variable = MN_TR
… nicht. Ich sehen aber, daß diese korrekt belegt wird und auch korrekt 
in CREATE verwendet wird.

Sicherlich habe ich nur einen Hinweis im Handbuch nicht richtig 
gedeutet, aber inzwischen sehe ich den Wald vor Bäumen nicht mehr.
Michael Hoffert



Mehr Informationen über die Mailingliste Tustep-Liste