Die @ON-Anweisung sucht nur im angegebenen Suchbereich.
Es können hierbei einer oder mehrere Zeilenbereiche spezifiziert werden. Ein Zeilenbereich kann auch aus nur einer einzelnen Zeile bestehen. Die Zeilenbereiche werden in der angegebenen Reihenfolge durchsucht. Bei einem Zeilenbereich kann auch ein Bereich von Zeichenfolgevariablen angegeben werden.
Mittels eines Operanden kann gesteuert werden, ob die @ON-Anweisung in jedem angegebenen Zeilenbereich nur die jeweils erste Trefferzeile ermittelt oder alle Zeilen jedes Zeilenbereiches durchsucht. Standardmäßig durchsucht die @ON-Anweisung alle Zeilen jedes angegebenen Zeilenbereiches.
Beispiele
@ON 1-3 FIND 'ABC'
Bei der @ON-Anweisung wird nur ein einzelner Zeilenbereich durchsucht.
@ON 1,2,3 FIND 'ABC'
Der Suchbereich besteht also aus 3 Zeilenbereichen mit jeweils einer einzelnen Zeile. Das Suchergebnis kann operandenabhängig anders sein als im vorhergehenden Beispiel.
@ON #S01,#S03.-#S04 CHANGE 'ABC' TO 'DEF'
Bei der @ON-Anweisung werden die Zeichenfolgevariablen #S01
, #S03
und #S04
nach einem Treffer durchsucht.
Für das Suchen innerhalb einer Zeile kann ein Spaltenbereich angegeben werden. Die Angabe mehrerer Spaltenbereiche ist nicht gestattet. Ist kein Spaltenbereich angegeben, wird ein Standard-Spaltenbereich (siehe @SEARCH-OPTION) verwendet.
Beispiele
@ON &:15-15: CHANGE 'A' TO 'D'
Bei der @ON-Anweisung wird somit nur eine einzelne Spalte untersucht.
@ON &:15-25: PRINT 'XYZ'
Bei der @ON-Anweisung wird somit in einem zusammenhängenden Spaltenbereich gesucht.