[Tustep-Liste] Dateiverwaltung mit TUSCRIPT
Kuno Schälkle
schaelkle at zdv.uni-tuebingen.de
Di Sep 12 09:15:34 CEST 2017
Sehr geehrter Herr Griesinger,
wenn Sie Sie Ihre Anweisungen noch perfektionieren
möchten, könnten Sie nach der Abfrage, ob zu QUELLE
bzw. ZIEL etwas angegeben ist, jeweils noch abfragen,
ob die Angabe einem legalen Dateinamen entspricht,
z.B.:
$$ IF (quelle.NE.’FILE_NAME’) THEN
Fehlermeldung
$$ ENDIF
Mit freundlichen Grüßen
Kuno Schälkle
> Am 07.09.2017 um 14:14 schrieb Christian Griesinger <ChristianGriesinger at gmx.de>:
>
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
>
> Liebe TUSTEPianer,
>
> auf dem TUSTEP-Wiki gibt es ja bereits ein paar Informationen
> zur Dateiverwaltung mithilfe von TUSCRIPT, ich würde gerne wissen,
> ob jemand aus der Community ein paar Tipps für den optimalen Umgang
> (also Best Practices) in diesem Bereich hat, die wir auf das Wiki
> hochladen können.
>
> Mich interessiert vor allem folgender Anwendungsfall: Wenn ich ein
> Programm habe, das eine Datei (im folgenden Quelldatei) modifiziert
> (z. B. Tagumwandlung, Registererstellung, automatisierte Auszeichnung)
> und das Ergebnis in einer zweiten Datei (im folgenden Zieldatei)
> speichert, dann möchte ich dieses Programm auch in einer Stapelver-
> arbeitung einsetzen (z.B. innerhalb eine Schleife).
> Wenn nun beispielsweise eine Quelldatei existiert, aber nicht angemeldet
> ist, sollte das Programm natürlich nicht direkt mit einer Fehlermeldung
> abbrechen, sondern ggfs. die Datei zuerst anmelden.
>
> Bisher habe ich folgendes Prozedere zusammengestellt, um die Dateien
> in dem oben skizzierten Kontext zu verarbeiten. Ist das richtig und
> vollständig so oder müsste man noch weitere Prüfungen einbauen? Oder
> gibt es eine einfachere Methode?
>
> #MAKRO
> $$ MODE TUSCRIPT, {}
>
> - 1. Schritt: Quelldatei prüfen
> - Prüfen, ob Quelldatei eingegeben wurde
> IF (quelle .EQ. "") THEN
> PRINT/ERROR "Eingabefehler:"
> PRINT/ERROR "Es wurde keine Quelle eingegeben."
> STOP
> ENDIF
>
> - Prüfen, ob Quelldatei existiert
> IF (quelle .NE. 'DATEI') THEN
> PRINT/ERROR "Dateifehler:"
> PRINT/ERROR "Die Datei {quelle} wurde nicht gefunden."
> STOP
> ENDIF
>
> - Prüfen, ob Quelldatei angemeldet
> status = CHECK(quelle, READ, TUSTEP)
>
> IF (status .NE. "OK") THEN
> status = OPEN(quelle, READ)
> IF (status .NE. "OK") THEN
> PRINT/ERROR "Dateifehler:"
> PRINT/ERROR "Die Datei {quelle} konnte nicht angemeldet werden."
> ENDIF
> ENDIF
>
> - 2. Schritt: Zieldatei prüfen
> - Prüfen, ob Zieldatei eingegeben wurde
> IF (ziel .EQ. "") THEN
> PRINT/ERROR "Eingabefehler:"
> PRINT/ERROR "Es wurde keine Zieldatei eingegeben."
> STOP
> ENDIF
>
> - Prüfen, ob Quell- und Zieldatei identisch sind
> IF (quelle .EQ. ziel) THEN
> PRINT/ERROR "Eingabefehler:"
> PRINT/ERROR "Quelle und Ziel dürfen nicht identisch sein."
> STOP
> ENDIF
>
> - Prüfen, ob Zieldatei existiert und ggfs. anmelden
> IF (quelle .NE. 'DATEI') THEN
> status = CREATE(ziel, SEQ-O)
> IF (status .NE. "OK") THEN
> PRINT/ERROR "Dateifehler:"
> PRINT/ERROR "Die Datei {ziel} konnte nicht eingerichtet werden."
> STOP
> ENDIF
> ENDIF
>
> - Prüfen, ob Zieldatei angemeldet ist
> status = CHECK(ziel, WRITE, TUSTEP)
>
> IF (status .NE. "OK") THEN
> status = OPEN(ziel, WRITE)
>
> IF (status .NE. "OK") THEN
> PRINT/ERROR "Dateifehler:"
> PRINT/ERROR "Die Datei {ziel} konnte nicht geöffnet werden."
> STOP
> ENDIF
> ENDIF
> *eof
Mehr Informationen über die Mailingliste Tustep-Liste