[Tustep-Liste] Kopiere-Austauschtabelle

F.Seck f.seck at t-online.de
Do Aug 6 19:18:42 CEST 2009


Liebe Herren Hellmann, Osthof und Gasperlin,

ich hatte natürlich erwartet, daß auch Lösungen in der Makrosprache
angeboten würden. Herrn Gasperlins Lösung ist sehr lehrreich; (auf sie wäre
ich bestimmt nicht gekommen); Herrn Osthofs hat den Vorzug der Kürze; man
wird sie vorziehen, wenn es auf die Erhaltung der ursprünglichen Reihenfolge
nicht ankommt. Wenn doch einmal - wie es ja bei Herrn Hellmann prompt war
und natürlich auch bei mir schon vorgekommen ist - dieselbe Suchzeichenfolge
mit verschiedenen Austauschzeichenfolgen auftritt, wird die Bearbeitung
durch die alphabetische Sortierung erleichtert.
Natürlich kann man sich auch eine weitergehende Lösung ausdenken, die auf
den genannten Fehler hinweist.

In einer Kommandoumgebung müssen die Makros (....) jedenfalls durch
$$= * (o.dgl.)
#MAKRO,*
.....
*EOF
**= $
eingeschlossen werden, damit sie erst nach den vorangehenden Kommandos
ausgeführt werden.

Mit besten Grüßen rundum
Friedrich Seck

--------------------------------------
Dr. Friedrich Seck
72076 Tübingen, Erlenweg 18
Tel: (0 70 71)  96 49 40
Fax-Nummer auf Anfrage
----- Original Message ----- 
From: "Oliver Gasperlin" <gasperlin at gasperlin.de>
To: <tustep-liste at itug.de>; <Martin.Hellmann at lmu.de>
Sent: Thursday, August 06, 2009 4:44 PM
Subject: Re: [Tustep-Liste] Kopiere-Austauschtabelle


Diskussionsforum Tustep-Liste
Weitere Informationen: www.itug.de
------------------------------------------------------------

Lieber Herr Hellmann,

hier noch eine TUSCRIPT-Lösung, die ohne Sortieren auskommt und den kleinen
Vorteil hat, dass Ihre Parameter-Karten in der Reihenfolge der Ausgangsdatei
stehen bleiben.

#makro
$$ MODE TUSCRIPT
SET a = FILE ("parameter_1"), b=*
LOOP/99999
   SET zeilen = SIZE (a)
   IF (zeilen.eq.0) EXIT
   SET a = REMOVE (a, 1, auswahl)
   SET b = COLLECT (b, auswahl)
ENDLOOP
FILE/ERASE "parameter_2" = b
*eof

1. Die Daten aus der Datei mit der "parameter_1" werden in die Variable a
gelesen; die Sternvariable b wird definiert.
2. In der Schleife wird ein Satz (eine Teilzeichenfolge) nach dem (der)
anderen a) aus der Variable a entfernt (REMOVE) und in die Variable auswahl
geschrieben sowie b) aus der Variable auswahl in die Variable b geschrieben,
wobei geprüft wird, ob dieser Satz in der Variable b schon vorhanden ist, in
welch letzterem Fall er nicht hineingeschrieben wird (COLLECT).
3. Schließlich wird die Variable b in die Datei "tabelle_2" geschrieben.

(Die ersten beiden Zeilen im Loop sind nur dazu da, die Schleife zu beenden,
sobald in der Variable a keine Teilzeichenfolgen mehr übrig sind.)


Beste Grüße
Oliver Gasperlin

------------------------------------------------------------
Tustep-Liste at itug.de
https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste



Mehr Informationen über die Mailingliste Tustep-Liste