Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@ON (Format 7) - Ersetzen oder Einfügen vor oder nach der Trefferzeichenfolge

&pagelevel(3)&pagelevel

Mit diesem Format der @ON-Anweisung kann vor oder nach einer Trefferzeichenfolge in Arbeitsdateizeilen bzw. Zeichenfolgevariablen Text eingefügt oder ersetzt werden.

Operation

Operanden

F-Modus, L-Modus

@ON

{ lines | svars } [,...] [:cols[:] ] FIND [ALL] [F] [R] [PATTERN]
search [,int] { CHANGE | INSERT } { PREFIX | SUFFIX } string

lines

svars

Einer oder mehrere Zeilenbereiche, in denen gesucht werden soll.

Einer oder mehrere Bereiche von Zeichenfolgevariablen, in denen gesucht
werden soll.

cols

Zusammenhängender Spaltenbereich, auf den die Suche eingeschränkt
werden soll.

Enthält die Bereichsangabe nur eine einzelne Spaltenangabe, so wird damit
der Bereich von dieser Spalte bis zum Zeilenende spezifiziert. Ist die erste
Spaltenangabe bereits größer als die Zeilenlänge, wird die Zeile bzw.
Zeichenfolgevariable ignoriert.

Wird kein Spaltenbereich angegeben, wird der mit @SEARCH-OPTION
eingestellte Spaltenbereich verwendet.

ALL

Bei einer Texteinfügung wird vom EDT vor bzw. hinter allen Trefferzeichenfolgen
einer Zeile die Zeichenfolge string eingefügt. Zur Ermittlung der
weiteren Treffer wird bei der Suche von links nach rechts hinter und bei der
Suche von rechts von links vor der Einfügung wieder aufgesetzt.

Bei einer Textersetzung wird vor bzw. hinter allen Trefferzeichenfolgen einer
Zeile der Zeileninhalt durch die Zeichenfolge string ersetzt. Zur Ermittlung
der weiteren Treffer wird die restliche Suche vor bzw. hinter der Ersetzung
fortgeführt.

Falls bei der Suche von links nach rechts der Text hinter einer Trefferzeichenfolge
ersetzt wird, ist die Angabe von ALL ohne Bedeutung. Dasselbe
gilt, wenn bei der Suche von rechts nach links der Text vor einer
Trefferzeichenfolge ersetzt wird.


Ist ALL nicht angegeben, wird nur vor bzw. hinter der ersten Trefferzeichenfolge
einer Zeile Text eingefügt oder ersetzt.

F

In jedem angegebenen Zeilenbereich wird das Ersetzen bzw. das Einfügen
nur für die erste Trefferzeile durchgeführt. Ist F nicht angegeben, findet das
Ersetzen bzw. das Einfügen für jede Zeile jedes angegebenen Zeilenbereiches
statt.

R

Die Zeilen werden von rechts nach links durchsucht. Ist R nicht angegeben,
werden sie von links nach rechts durchsucht.

PATTERN

search

Die im Suchbegriff vorkommenden Musterzeichen werden interpretiert.

Suchbegriff, der im Suchbereich aufgefunden werden soll (Details siehe
Abschnitt „Suchen mit @ON“). Die Angabe einer leeren
Zeichenfolge ist nicht erlaubt.

int

Erst das int-te Auftreten des Suchbegriffes in einer Zeile ist als erster Treffer
zu werten. Als Eingaben für int sind alle Werte zwischen 1 und 32768
erlaubt. Der Standardwert für int beträgt 1.

CHANGE

Der vor oder nach der Trefferzeichenfolge stehende Text bis zum Satzanfang
bzw. zum Satzende wird durch die mit string angegebene Zeichenfolge
ersetzt.

INSERT

Die mit string angegebene Zeichenfolge wird vor oder nach der
Trefferzeichenfolge eingefügt.

PREFIX

Die mit string angegebene Zeichenfolge ersetzt den Zeileninhalt vor der
Trefferzeichenfolge oder wird vor der Trefferzeichenfolge eingefügt.

SUFFIX

Die mit string angegebene Zeichenfolge ersetzt den Zeileninhalt nach der
Trefferzeichenfolge oder wird nach der Trefferzeichenfolge eingefügt.

string

Zeichenfolge, die den Text vor oder nach der Trefferzeichenfolge ersetzen
bzw. vor oder nach der Trefferzeichenfolge eingefügt werden soll. Auch die
Angabe einer leeren Zeichenfolge ist erlaubt.

Die Zeichenfolge wird in den Zeichensatz der Arbeitsdatei bzw. der
Zeichenfolgevariablen konvertiert. Enthält die Zeichenfolge Zeichen, die im
Ziel-Zeichensatz nicht darstellbar sind, werden diese durch ein
Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITU-
TION-CHARACTER), anderenfalls wird die @ON-Anweisung abgebrochen
und die Fehlermeldung EDT5493 ausgegeben.

Die Zeichenfolge string sollte von den Operanden PREFIX bzw. SUFFIX
durch ein Leerzeichen getrennt sein.

Das Ersetzen bzw. das Einfügen findet nicht statt, wenn ein Satz dadurch die maximale Satzlänge von 32768 Zeichen überschreitet. Stattdessen wird in diesem Falle die Meldung EDT1937 ausgegeben, die Abarbeitung aber fortgesetzt.

Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.

Beispiel 1

Alle mehrfachbenutzbaren Dateien der Benutzerkennung USER2, die mit dem teilqualifizierten Namen BSP. beginnen, sollen aufgelistet werden.

Jedem teilqualifizierten Namen BSP. soll die Zeichenfolge @READ '$USER2. vorangestellt werden.

Das abschließende Hochkomma wird hinter den vier Dateinamen $USER2.BSP.1 bis $USER2.BSP.4 eingefügt.

Die vier Dateien BSP.1 bis BSP.4 werden hintereinander in die Arbeitsdatei 1 eingelesen.

Beispiel 2

Im Zeilenbereich 1 bis 2 soll von rechts nach links nach dem dritten Auftreten der Zeichenfolge 11 gesucht und im Trefferfall dahinter ++++ eingefügt werden.

In Zeile 1 trat der Suchbegriff zum dritten Mal von rechts in den Spalten 17-18 auf.

In Zeile 2 trat der Suchbegriff zum ersten Mal in den Spalten 24-25, zum zweiten Mal in den Spalten 22-23 und zum dritten Mal in den Spalten 19-20 auf. Hinter dem Treffer wurde die Zeichenfolge ++++ eingefügt.

Nun soll in der gesamten Arbeitsdatei ab Spalte 4 nach dem dritten Auftreten der Zeichenfolge 111 gesucht werden. Im Trefferfall ist der nachfolgende Text zu ersetzen durch ####.

In Zeile 1 trat der Suchbegriff nicht auf.
In Zeile 2 trat der Suchbegriff beginnend ab Spalte 4 zum ersten Mal in den Spalten 7-9,
zum zweiten Mal in den Spalten 12-14 und zum dritten Mal als Treffer in den Spalten 17-19
auf. Nach dem Treffer wurde der Zeilenrest durch die Zeichenfolge #### ersetzt.