[Tustep-Liste] Dateiverwaltung mit TUSCRIPT

Christian Griesinger ChristianGriesinger at gmx.de
Mi Sep 20 14:55:27 CEST 2017


Lieber Herr Schälkle,
Lieber Herr Reeg,

vielen Dank für Ihre wertvollen Anregungen. Besonders die
Abfrage von FILE_NAME und die Deklaration mithilfe von
$$! waren sehr hilfreich für mich.

Viele Grüsse
Christian Griesinger

> Gesendet: Dienstag, 12. September 2017 um 09:15 Uhr
> Von: "Kuno Schälkle" <schaelkle at zdv.uni-tuebingen.de>
> An: tustep-liste at itug.de
> Betreff: Re: [Tustep-Liste] Dateiverwaltung mit TUSCRIPT
>
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
> 
> 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
> 
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste



Mehr Informationen über die Mailingliste Tustep-Liste