Vergleichsoperatoren Zeichen
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe ABAP.
Es gibt Vergleichsoperatoren, mit denen man sehr schnell und flexibel nach Fundstellen in einem Text suchen kann.
Berücksichtigung führende/schließende Leerzeichen
- Bei einem Datenfeld vom Typ String werden schließende Leerzeichen berücksichtigt.
- Bei allen anderen zeichenartigen Datentypen werden schließende Leerzeichen ignoriert.
SY-FDPOS
- Die Fundstelle im String wird in die Systemvariable SY-FDPOS geschrieben.
- Die Zählung beginnt bei 0.
Suchmuster
Der Vergleich erfolgt nach dem Prinzip.
Data: lv_offset type i. if <string> <operator> <suche_nach>. ... "Suche erfolgreich endif.
Operatoren
Operator CA (Contains Any)
- 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 CO (Contains Only)
- Mit dem Vergleichsoperator CO prüft man in einem String, ob nur die erlaubten Zeichen in dem String vorkommen.
if lv_text co '0123456789'. ... "erfolgreich, wenn lediglich Zahlen in dem String vorkommen endif.
Operator CP (Covers Pattern)
- Mit dem Operator CP kann man sehr flexibel auch nach Wildcards suchen.
Das Zeichen * steht für eine beliebige Zeichenfolge
if lv_variable cp 'Test*Beispiel'. ... "erfolgreich endif.
Das Zeichen + steht für genau ein beliebiges Zeichen
if lv_variable cp 'Tes+Beispiel'. ... "erfolgreich endif.
- 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.
Hier werden z B. alle Partner gelöscht, die mit "Z*" beginnen
DELETE lt_partner WHERE parvw CP 'Z*'.
Operator CS (Contains String)
- Oft wird man den Vergleichsoperator CS verwenden, um zu prüfen, ob ein Suchstring in einem Text vorkommt.
IF <ls_column>-column CS 'MG'.
Findet solche Felder:
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.
Tabelle mit Operatoren
Operator | Bedeutung |
---|---|
CO | Contains only. Beispiel: 'ABCDE' co 'DA' --> TRUE |
CA | Contains any. Beispiel: 'ABCDE' ca 'EFG' --> TRUE |
CS | Contains string. Beispiel: 'ABCDE' cs 'BA' --> TRUE (sy-fdpos = 0) |
CP | Covers pattern. Beispiel: '<z>HTML-Text</z>' cp '<+>' --> TRUE |