From christian.moser at theol.uzh.ch Tue Sep 5 20:39:49 2017 From: christian.moser at theol.uzh.ch (Christian Moser) Date: Tue, 5 Sep 2017 20:39:49 +0200 Subject: [Tustep-Liste] Codepage/Umlaute Message-ID: <268428b7-8749-08a7-7f5d-817fd7f4bd2b@theol.uzh.ch> Liebe Liste Aus mir unerklärlichen Gründen funktionieren plötzlich die Umlaute nicht mehr. Win10 (Version 1703) virtualisiert (VirtualBox) auf Ubuntu 16.04. Windows gibt 850 als aktive Code page. Aktuelle Code page in Tustep ist ebenfalls cp850. Ein Test mit #liste,code=+ zeigt alles korrekt an. In Nicht-Tustep-Programmen funktionieren die Umlaute tadellos. Weiss da jemand Rat? Freundliche Grüsse Christian Moser From michael.trauth at outlook.de Wed Sep 6 03:17:07 2017 From: michael.trauth at outlook.de (Dr. Michael Trauth) Date: Wed, 6 Sep 2017 01:17:07 +0000 Subject: [Tustep-Liste] Codepage/Umlaute In-Reply-To: <268428b7-8749-08a7-7f5d-817fd7f4bd2b@theol.uzh.ch> References: <268428b7-8749-08a7-7f5d-817fd7f4bd2b@theol.uzh.ch> Message-ID: Lieber Christian, zu Deinem Problem: > Aus mir unerklärlichen Gründen funktionieren > plötzlich die Umlaute nicht mehr. > Win10 (Version 1703) virtualisiert > (VirtualBox) auf Ubuntu 16.04. > Windows gibt 850 als aktive Code page. > Aktuelle Code page in Tustep ist ebenfalls > cp850. > Ein Test mit #liste,code=+ zeigt alles korrekt > an. [MTr] Aktiviere doch bitte einmal in den Eigenschaften des Konsolen-Fensters, dort unter -> Optionen, die -> Legacykonsole und berichte dann. Wenn's klappt, sollten wir mit einem feinen Schweizer Kirsch aus der Ferne anstoßen. Viele Grüße reihum von Michael Trauth From christian.moser at theol.uzh.ch Wed Sep 6 08:15:26 2017 From: christian.moser at theol.uzh.ch (Christian Moser) Date: Wed, 6 Sep 2017 08:15:26 +0200 Subject: [Tustep-Liste] Codepage/Umlaute In-Reply-To: References: <268428b7-8749-08a7-7f5d-817fd7f4bd2b@theol.uzh.ch> Message-ID: <2fda663b-8c36-f621-6013-c5bd7ee3cf5a@theol.uzh.ch> Lieber Michael, vielen dank für diesen Tipp! Mit der Legacykonsole klappt es in der Tat tadellos. Ich bin erleichtert und proste dir aus der Ferne zu! Herzliche Grüße an alle Christian Moser From ChristianGriesinger at gmx.de Thu Sep 7 14:14:35 2017 From: ChristianGriesinger at gmx.de (Christian Griesinger) Date: Thu, 7 Sep 2017 14:14:35 +0200 Subject: [Tustep-Liste] Dateiverwaltung mit TUSCRIPT Message-ID: 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/ From Gottfried.reeg at seegelken-reeg.de Thu Sep 7 17:17:45 2017 From: Gottfried.reeg at seegelken-reeg.de (Gottfried Reeg) Date: Thu, 7 Sep 2017 17:17:45 +0200 Subject: [Tustep-Liste] Dateiverwaltung mit TUSCRIPT In-Reply-To: References: Message-ID: <5c9c1952-529b-6844-c303-32900e10f0f4@seegelken-reeg.de> Lieber Herr Griesinger, in meinen Makros verwende ich in der Regel seit langem folgende Zeilen am Anfang: Die ersten Zeilen, ermöglichen einen Aufruf des Makros mit #*m,makro Da innerhalb eines Batchs die Prüfungen von #*m nicht vorgenommen werden, müssen die Angaben dann für diesen Fall überprüft werden. $$! quelle $$/ FILE $$- $$! ziel $$/ FILE $$- $$! dauer $$/ SINGLE $$- $$! $$/ t $$- temporär $$! $$/ p $$- permanent $$! $$/ p'- $$- perm. nicht fragen, wenn bereits vorhanden $$! qtraeger=-std- $$/ VOLUME $$- Trägerangabe für die Quelle $$! ztraeger=-std- $$/ VOLUME $$- Trägerangabe für das Ziel $$MODE TUSCRIPT, { } - Prüfen, ob die Angaben zu den Dateien einem Dateinamen entsprechen: IF (quelle.NE.'FILE NAME') ERROR "Zu QUELLE ist kein legaler Dateiname angegeben" IF (ziel.NE.'FILE NAME') ERROR "Zu ZIEL ist kein legaler Dateiname angegeben" IF (dauer != "t","p","p'-") ERROR "Zu DAUER nur t p p'- vorgesehen: ", dauer - Dateityp festlegen SET dtyp="SEQ-{dauer}" IF (dauer=="p'-") SET dtyp = "SEQ-O" - Abfrage, ob sich Quelle und Ziel unterscheiden SET status = UNIQUE (quelle, ziel) ERROR "Datei ", status, " ist mehrfach angegeben" - Erst nach dem Prüfen dieser Angaben, erfolgt im Fehlerfall der Abbruch IF (ERROR) STOP - Prüfen der Quelldatei, ob zum Lesen angemeldet, sonst anmelden, - Wenn ohne Erfolg, dann wird abgebrochen. Die Fehlermeldung von TUSCRIPT wird ausgegeben IF (quelle!='LESEN') ERROR/STOP "QUELLE: ", OPEN (quelle, READ, {qtraeger}) - Prüfen der Zieldatei, ob zum Schreiben vorhanden, einrichten IF (ziel!='SCHREIBEN') ERROR/STOP "ZIEL: ", CREATE (ziel, {dtyp}, {ztraeger}) Viele Grüße aus Berlin Gottfried Reeg Am 07.09.2017 um 14:14 schrieb Christian Griesinger: > 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 > > > 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/ > > ------------------------------------------------------------ > Tustep-Liste at itug.de > https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste From schaelkle at zdv.uni-tuebingen.de Tue Sep 12 09:15:34 2017 From: schaelkle at zdv.uni-tuebingen.de (=?utf-8?Q?Kuno_Sch=C3=A4lkle?=) Date: Tue, 12 Sep 2017 09:15:34 +0200 Subject: [Tustep-Liste] Dateiverwaltung mit TUSCRIPT In-Reply-To: References: Message-ID: 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 : > > 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 From ChristianGriesinger at gmx.de Wed Sep 20 14:55:27 2017 From: ChristianGriesinger at gmx.de (Christian Griesinger) Date: Wed, 20 Sep 2017 14:55:27 +0200 Subject: [Tustep-Liste] Dateiverwaltung mit TUSCRIPT In-Reply-To: References: Message-ID: 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" > 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 : > > > > 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