---- [[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 / 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]]