----
[[tustep:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]
----
====== Konventionen zum pattern matching ======
Seit der **TUSTEP-Version 2012** gelten neue Konventionen zum **pattern matching**. Sie sind systematischer aufgebaut, leichter zu merken und zu lesen als die bisher allein gültigen. Darüber hinaus können sie auch problemlos in Prozeduren genutzt werden, die mit **XML**-Editoren geschrieben werden.\\ \\ Eine **Liste der (neuen vs. alte) Konventionen zum Download** finden Sie {{files_open:daten:parameterneu2012.pdf|hier}} .\\ \\ Ein **#KOPIERE-Script**, das in Prozeduren die **alten Konventionen in die neuen konvertiert**, finden Sie unten.\\ \\ Zwischen den bisherigen und den neuen Konventionen **kann umgeschaltet werden**. Die Umschaltung **bewirkt auch eine Änderung der Konventionen im Editor**!\\
#parameter,{} stellt die neuen Konventionen ein (Voreinstellung*)
#parameter,<> stellt die bisherigen Konventionen ein
(!! gleichbedeutend: #parameter,neu !!)
¤ Die Voreinstellung {} **gilt für neue Sitzungen**, bei denen eine **tustep.ini-Datei automatisch eingerichtet** wird. In dem betreffenden Fenster ist die Zeile ''#PARAMETER,{}'' angekreuzt. Wenn man dies nicht ändert, wird für diese Sitzung #parameter,{} in die Datei tustep.ini geschrieben. In allen anderen Fällen gilt die Voreinstellung <>.\\
Übersicht:
linke Spalte: Codierung bei #parameter, modus={}
rechte Spalte: Codierung bei #parameter, modus=<>
Vordefinierte Zeichengruppen
{!} ASCII-Zeichen >%
{;} TUSTEP-Zeichen außer ASCII-Zeichen
{@} Zeichen außer Buchstaben und Ziffern <@
{%} Zeichen hinter % zur Akzentcodierung >@
{\a} Kleinbuchstaben >*
{\A} Großbuchstaben <*
{&a} Kleinbuchstaben & Großbuchstaben
{\0} normale Ziffern
{&0} normale Ziffern & hochgestellte Ziffern >/
Zeichen- und Stringgruppen
? ein beliebiges Zeichen <%
* null bis beliebig viele beliebige Zeichen ><<><%
[...] lokale Zeichengruppe, z.B. m[ae][iy]er
{Z:xy} selbstdefinierte Zeichengruppe xy >[xy]
{C:xy} alternative Schreibweise für {Z:xy}
{S:xy} selbstdefinierte Stringgruppe xy <[xy]
Definition einer Zeichengruppe >1z <1z
Definition einer Stringgruppe >1s <1s
Bezug auf eine Zeichen- oder Stringgruppe >1 <1
{–} nachfolgende Zeichen aus der Gruppe entfernen ><
{+} nachfolgende Zeichen in die Gruppe aufnehmen <>
Häufigkeitsbedingungen in Suchzeichenfolgen
{n} genau n Elemente >m
{n––m} n bis m Elemente, möglichst viele <>m><0
{00} 1 bis unendlich viele Elemente = {1–0} <>0
Zahlenwertbedingungen in Suchzeichenfolgen
{#} Zahl mit beliebigem Wert
{#n} Zahl mit Wert n >={n-n}
{!n} Zahl mit Wert ungleich n <{n-n}
{#n-m} Zahl mit Wert von n bis m >={n-m}
{!n-m} Zahl mit Wert kleiner n oder größer m <{n-m}
Verweise in Suchzeichenfolgen
{+n=} n-tes Element von links gezählt a != A >=nn
{-n=} n-tes Element von rechts gezählt a != A <=nn
{+n:} n-tes Element von links gezählt a == A >:nn
{-n:} n-tes Element von rechts gezählt a == A <:nn
Elementbereiche in Suchzeichenfolgen
{|} Begrenzungszeichen zwischen Elementbereichen
Verweise in Ersatzzeichenfolgen
{+n=} n-tes Element von links gezählt >=nn
{-n=} n-tes Element von rechts gezählt <=nn
{+0=} alle Elemente der Kernzeichenfolge >=00
{–0=} alle Elemente der Kernzeichenfolge <=00
{+n-m=} n-tes bis m-tes Element von li. gezählt >=(n-m)
{+n–0=} n-tes bis letztes Element von li. gezählt >=(n–0)
{-n-m=} n-tes bis m-tes Element von re. gezählt <=(n-m)
{–0-m=} erstes bis m-tes Element von re. gezählt <=(0-m)
{=n=} Alle Elemente des n-ten Elementbereichs
{=0=} Alle Elemente der Kernzeichenfolge
{=n-m=} Alle Elemente des n-ten bis m-ten Elementbereichs
{...+} ... Kleinbuchstaben ––> Großbuchstaben >+nn etc.
{...–} ... Großbuchstaben ––> Kleinbuchstaben >-nn etc.
{...;} ... a, b, ..., $, ... ––> ä, ^b, ..., ^$, ... >:nn etc.
{...!} ... ä, ^b, ..., ^$, ... ––> a, b, ..., $, ... >;nn etc.
Einzelzeichen
\? Fragezeichen ?
\* Stern *
\[ eckige Klammer auf [
\] eckige Klammer zu ]
\{ geschweifte Klammer auf {
\} geschweifte Klammer zu }
\a Kleinbuchstabe a >a
\A Großbuchstabe A spitze Klammer zu >>
Sonstiges
{[} linker Rand <|
{]} rechter Rand >|
{|} in Sortieralphabet-Tabellen: Umschalten auf ><
höchste Wertigkeiten
==== Eingabeerleichterung im Editor ====
CTRL+K + erstes Zeichen, das in den Klammern vorgesehen ist
erleichtert die Eingabe von {...}
CTRL+K + Blank zeigt eine Übersicht über die nach #pa,{} geltenden Konventionen
zum Schreiben der Parameter und der Editor-Anweisungen.
==== Ausführen "alter" Programme ====
Will man Programme, deren Parameter **noch nach den <>-Konventionen geschrieben** wurden, in einer Umgebung verwenden, in der die neuen {}-Konventionen eingestellt sind, oder will man sicherstellen, dass **weitergegebene Programme unabhängig von den eingestellten Konventionen des Empfängers** laufen, besteht (ab der Version 2013) die Möglichkeit, in den Parametersatz - am besten jeweils gleich nach der Kommandozeile - den Parameter PAR einzufügen:\\
PAR <> Für die Interpretation der folgenden Parameter
gilt der Parameter-Modus <>
Dasselbe gilt auch im umgekehrten Fall:\\
PAR {} Für die Interpretation der folgenden Parameter
gilt der Parameter-Modus {}
**Beispiel:**\\
#rv,datei.tf,-std-,+,+,*
par {}
ea ||
ee ||
ssl 20
*eof
oder:
#rv,datei.tf,-std-,+,+,*
par <>
ea |<>|
ee |<>|
ssl 20
*eof
====== Prozedur zur Konvertierung alt nach neu ======
- [ trauth | trauth]\\ \\ Mit dem folgenden **#KOPIERE-Script** können in Prozeduren die **alten Konventionen in die neuen konvertiert** werden.\\ \\ {{files_open:daten:pm-conv.p|pm-conv.p}} [20 KB]\\
\\ \\ Eine **Beschreibung der Prozedur und ihre Voraussetzungen** finden sich am Anfang der Datei.\\
----
[[tustep:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]