Vergleichsoperatoren Zeichen

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Es gibt Vergleichsoperatoren, mit denen man sehr schnell und flexibel nach Fundstellen in einem Text suchen kann.

Die Fundstelle im String wird in die Systemvariable SY-FDPOS geschrieben. Sie beginnt bei 0.

Bei einem Datenfeld vom Typ String werden schließende Leerzeichen berücksichtigt. Bei allen anderen zeichenartigen Datentypen werden schließende Leerzeichen ignoriert.

Suchmuster

Der Vergleich erfolgt nach dem Prinzip.

Data: lv_offset type i.

if <suchstring> <operator> <suche_nach>.
  lv_offset = sy-fdpos.
endif.

Beispiel

Es wird hier geprüft, ob in einer Variable LV_STR_NAME ein interner Wiki-Link vorkommt (Zeichen "[[").

Data: lv_offset_begin type i.
IF lv_str_name CS '[['.
  lv_offset_begin = sy-fdpos.
endif.

Wenn die Bedingung erfüllt ist, kommt in dem String ein interner Link vor. Die Fundstelle wird in die Variable LV_OFFSET_BEGIN geschrieben.

Operator CS

  • Oft wird man den Vergleichsoperator CS verwenden, um zu prüfen, ob ein Suchstring in einem Text vorkommt.

Operator CA

  • Mit dem Vergleichsoperator CA kann man gut nach einem Space in einem String suchen. Bei der Suche nach einem Space funktioniert der Vergleichsoperator CS nicht. Es wird dann die Fundstelle des Space nicht in die Systemvariable SY-FDPOS geschrieben.
Data: lv_text type string value 'Text mit Leerzeichen',
      lv_offset type i.

if lv_text ca ' '.       "oder ca space
  lv_offset = sy-fdpos.  "Die erste Fundstelle wird aufgeführt: sy-fdpos = 4
endif.

Operator CP

  • Mit dem Operator CP kann man sehr flexibel auch nach Wildcards suchen.
  • * (Beliebe Zeichenfolge),
  • + (1 beliebiges Zeichen).
  • Standardmäßig wird beim Operator CP nicht zwischen Groß-/Kleinschreibung unterschieden
  • Durch Voranstellen von "#" kann ein Zeichen casesensitiv gekennzeichnet werden (Berücksichtigung Groß-Kleinschreibung), z. B.: 'ABcd' cp '#bc' --> FALSE, aber 'ABcd' cp 'bc' --> TRUE.

Operatoren

Operator Bedeutung
CO Contain only. Beispiel: 'ABCDE' co 'DA' --> TRUE
CA Contain any. Beispiel: 'ABCDE' ca 'EFG' --> TRUE
CS Contain string. Beispiel: 'ABCDE' cs 'BA' --> TRUE (sy-fdpos = 0)
CP Contains pattern. Beispiel: '<z>HTML-Text</z>' cp '<+>' --> TRUE

Web-Links