[Tustep-Liste] [SPAM] Ergänzen von fehlenden tags per Austauschtabelle

Christian Sonder christian.sonder at trilog-verlag.de
Fr Jun 13 11:29:04 CEST 2025


Lieber Herr Luckseiter,

probieren Sie mal folgendes Beispielprogramm aus:

#MAKRO
$$ MODE TUSCRIPT, {}

text = "abcde"

BUILD X_TABLE x1 = *
DATA -a-b-
DATA -b-c-
DATA -d-e-

text = EXCHANGE(text, x1)

TRACE * text
*EOF

Sie sehen, das Programm startet mit "abcde". In der Austauschtabelle 
wird
a durch b, b durch c und d durch e getauscht. Ich vermute, sie würden
"cccee" erwarten. In der Tat kommt aber nur "bccee" heraus. Warum?
Als erstes wird das a ausgetauscht, Resultat: "bbcde", das nun erste 
Zeichen
"b" wurde in diesem Schritt modifiziert und wird in diesem Durchgang
nicht mehr weiter bearbeitet. Dann wird das "b" ersetzt, denn es war
vom ersten Austausch nicht betroffen, Resultat "bccde",
dann wird das "d" ersetzt, Resultat "bccee". Der Durchgang ist erledigt.

Wenn Sie die drei Austauschanweisungen auf drei Tabellen aufteilen,
wird das Resultat nach Tabelle 1 lauten: "bbcde", nach Tabelle 2: 
"cccde",
nach Tabelle 3 "cccee", weil jetzt es jetzt mehrere Durchgänge gibt.

Es werden also durchaus mehrere Ersetzungen pro Durchgang erledigt,
nur eben nicht die "selbe Stelle", in diesem Beispiel der erste 
Buchstabe,
der nur einmal und nicht zweimal getauscht wird.

Ich hoffe, das hilft Ihnen weiter. Sie können gerne das selbe Programm
einmal mit #KOPIERE und XX implementieren und einmal nur einen 
XX-Durchgang
machen, und dann einen zweiten Versuch mit mehreren XX-Durchgängen,
das Ergebnis müsste (hoffentlich) das Gleiche sein.

Viele Grüße
Christian Sonder


Am 2025-06-13 10:59, schrieb luckscheiter:
> Vielen Dank, lieber Herr Sonder,
> ganz verstehe ich die Sache allerdings nicht, denn andere Anweisungen 
> aus derselben Austauschtabelle, z. B.
> 
>    DATA -\[.\]--
> 
> wurden durchaus gleichzeitig mit anderen ausgeführt.
> 
> Herzliche Grüße,
> Stefan Luckscheiter
> 
> Am 2025-06-11 18:29, schrieb Christian Sonder:
>> Lieber Herr Luckscheiter,
>> 
>> wie auch beim Parameter XX von Kopiere wird, wenn ich mich nicht irre, 
>> in einem Durchgang eine Stelle nur einmal modifiziert. Versuchen Sie 
>> einfach, die drei Austauschanweisungen nacheinander in drei separaten 
>> Tabellen auszuführen.
>> 
>> text = exchange(text, Tabelle1)
>> text = exchange(text, Tabelle2)
>> text = exchange(text, Tabelle3)
>> usw.
>> 
>> Es gäbe noch alternativ die Möglichkeit, ihre Tabellen selbst zu 
>> modifizieren, aber das sollte der einfachste Weg sein.
>> 
>> Viele Grüße
>> Christian Sonder
>> 
>> Am 2025-06-11 11:12, schrieb luckscheiter:
>>> Liebe Liste,
>>> ich habe eine Variable, die ein Wort und möglicherweise tags für 
>>> Schriftauszeichnungen wie <i>, <s>, <uP> usw. enthält, allerdings 
>>> jeweils möglicherweise Anfang- und Endtag, oder auch nur Anfang- oder 
>>> Endtag.
>>> Die eventuell fehlen tags möchte ich nun ergänzen und würde gerne 
>>> fragen, wie man das am elegantesten macht.
>>> Ich habe es versucht mit folgender Austauschtabelle:
>>> 
>>> BUILD X_TABLE l1form = *
>>>    DATA --<i>*</i>--<i>*-<i>{-1=}</i>-
>>>    DATA --<s>*</s>--<s>*-<s>{-1=}</s>-
>>>    DATA --<uP>*</uP>--<uP>*-<uP>{-1=}</uP>-
>>> 
>>> Das Problem dabei ist aber, dass so nur jeweils ein tag ergänzt wird 
>>> und aus
>>> 
>>> <uP><i><s>Wörtlein
>>> wird
>>> <uP><i><s>Wörtlein</uP>
>>> 
>>> und nicht wie gewünscht:
>>> 
>>> <uP><i><s>Wörtlein</s></i></uP>
>>> 
>>> Mache ich irgendetwas falsch?
>>> 
>>> Viele Grüße in die Runde,
>>> Stefan Luckscheiter


Mehr Informationen über die Mailingliste Tustep-Liste