[Tustep-Liste] Dateiverwaltung mit TUSCRIPT

Christian Griesinger ChristianGriesinger at gmx.de
Do Sep 7 14:14:35 CEST 2017


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


Viele Grüsse
Christian Griesinger
-----
Parzival-Projekt Bern
Institut für Germanistik
Universität Bern
Länggassstrasse 49, D103
CH-3012 Bern, Schweiz
Tel.: +41 (0)31 631 34 65
Mail: Christian.Griesinger at germ.unibe.ch
URL: http://www.parzival.unibe.ch/



Mehr Informationen über die Mailingliste Tustep-Liste