[Tustep-Liste] Kopiere-Austauschtabelle

Matthias Osthof matthias.osthof at t-online.de
Do Aug 6 22:29:00 CEST 2009


Lieber Herr Seck, lieber Martin,

> Natürlich kann man sich auch eine weitergehende Lösung ausdenken, 
> die auf den genannten Fehler hinweist.
Die Tabelle enthält nach dem Sortieren und Eliminieren von
Mehrfacheintragungen noch Einträge der Art:
xx        |aaa|bbb|
xx        |aaa|falsch|   

Der LOOP isoliert bei jedem Eintrag in der Liste die Suchzeichenfolge mit
EXTRACT() und vergleicht sie mit der in x_alt gespeicherten des
vorangehenden Eintrags. Wenn beide identisch sind, gibt er den Parameter in
einer (in dieser Form spartanischen) Meldung aus. Man könnte das Ganze
benutzerfreundlicher gestalten, darauf habe ich der Übersichtlichkeit halber
verzichtet.


SET xx = FILE ("params")
SET xx = ALPHA_SORT (xx)
SET xx = REDUCE (xx)

SET x_alt = ""
BUILD S_TABLE trenner = ".|."
LOOP lp = xx
  SET x_neu = EXTRACT (lp, 12, trenner)
  IF (x_alt.EQ.x_neu) THEN
    + @@@@@@@@ {lp}
  ENDIF
  SET x_alt = x_neu
ENDLOOP

FILE/ERASE/PROGRAM "params" = xx 


Einen schönen Abend wünscht
Matthias Osthof




-----Ursprüngliche Nachricht-----
Von: tustep-liste-bounces at lists.uni-wuerzburg.de
[mailto:tustep-liste-bounces at lists.uni-wuerzburg.de] Im Auftrag von F.Seck
Gesendet: Donnerstag, 6. August 2009 19:19
An: tustep-liste at itug.de
Betreff: Re: [Tustep-Liste] Kopiere-Austauschtabelle

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

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

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



Mehr Informationen über die Mailingliste Tustep-Liste