[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