[Tustep-Liste] die nächste Frage
Kuno Schälkle
schaelkle at zdv.uni-tuebingen.de
Fr Jun 12 14:21:39 CEST 2009
Liebe Frau Jockers,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Die Variable quelle enthält den vom Nutzer eingegeben Quelldateinamen.
Nun soll vor Programmbeginn abgefragt werden, ob die Datei wirklich im
vorgegebenen Verzeichnis steht oder nicht. Gleichzeitig wird der Pfad
inkl. Dateiname mit einer Tustep-Variable belegt, und die Datei wird
später geöffnet und bearbeitet.
DEFINE/SYSTEM traeger = "D:\Würzburg\Konvertierung\"
SET pfad = "D:\Würzburg\Konvertierung\{quelle}"
DEFINE "qdat" = "{pfad}"
IF ("{quelle}" .NE. 'FILE' .ON. traeger) THEN
+ Fehlermeldung
- ERROR/STOP
ENDIF
...
SET status OPEN ("qdat", READ, -)
...
Das Paradoxe ist, daß beim jetzigen Zustand des Makros keine
programmseitige Fehlermeldung ausgegeben wird, sondern nur meine
Fehlermeldung, die aber auch, wenn der Quelldateiname richtig
geschrieben ist und das Programm problemlos beim Öffnen von "qdat"
weiterläuft.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
das Problem liegt in der Abfrage
IF ("{quelle}" .NE. 'FILE' .ON. traeger) THEN
Hier möchten Sie vermutlich abfragen, ob die Datei
D:\Würzburg\Konvertierung\{quelle}
existiert. Bei Angaben von Dateinamen ohne
Projektangabe wird noch der eingestellte
Projektname ergänzt. Wenn Sie also z.B.
"daten" als Projekt eingestellt haben, wird
D:\Würzburg\Konvertierung\daten\{quelle}
abgefragt, so als hätten Sie
IF ("daten*{quelle}" .NE. 'FILE' .ON. traeger) THEN
geschrieben. Die Abfrage, so wie sie vermutlich
gewollt ist, müßte deshalb so aussehen:
IF ("-*{quelle}" .NE. 'FILE' .ON. traeger) THEN
Angenommen die Namen der möglichen Quelldateien
sind alle TUSTEP-konform, könnten Sie wie folgt schreiben:
DEFINE/SYSTEM traeger = "D:\Würzburg\Konvertierung\"
IF ("-*{quelle}" .NE. 'FILE' .ON. traeger) THEN
ERROR/STOP "Fehlermeldung"
ENDIF
SET status = OPEN ("-*{quelle}", READ, traeger)
Falls auch Dateinamen vorkommen können, die nicht
TUSTEP-konform sind, könnten Sie wie folgt schreiben:
DEFINE "qdat" = "D:\Würzburg\Konvertierung\{quelle}"
IF ("qdat" .NE. 'FILE' .ON. -) THEN
ERROR/STOP "Fehlermeldung"
ENDIF
SET status = OPEN ("qdat", READ, -)
Herzliche Grüße
Kuno Schaelkle
Mehr Informationen über die Mailingliste Tustep-Liste