[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