String in Operator?

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

String in Operator?

Beitrag von Murdock (Specialist / 115 / 55 / 8 ) »
Hi,

wenn nicht hier, wo könnte ich diese frage sonst stellen :D

Gibt es im ABAP einen in Operator, der auf eine Zeichenkettenmenge überprüft?

Also, anstatt

Code: Alles auswählen.

IF lv_feld1 = 'Test1' OR lv_feld1 = 'Test2'.
 ...
ENDIF.
Soetwas wie:

Code: Alles auswählen.

IF lv_feld1 IN ('Test1','Test2').
 ...
ENDIF.
Danke,
Murdock.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: String in Operator?

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
"CASE" statt "IF" - das kommt dem sehr nahe.

Code: Alles auswählen.

CASE lv_feld1.
  WHEN 'Test1'
    OR 'Test2'.
  ...
ENDCASE.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Murdock

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: String in Operator?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
hi!
black_adept hat geschrieben:"CASE" statt "IF" - das kommt dem sehr nahe.
Mach ich meistens auch immer so.

Wenn es aber etwas komplizierter wird (z.B. mit Wildcards usw.) braucht man entweder einen Range oder RegEx.

Code: Alles auswählen.

data: lr_string type range of string.
field-symbols: <lr_string> like line of lr_string.

* Beliebige Patterns füllen
append initial line to lr_string assigning <lr_string>.
<lr_string>-sign = 'I'.
<lr_string>-option = 'CP'.
<lr_string>-low = 'Test*'.
...

if lv_field1 in lr_string.
...
endif.

Code: Alles auswählen.

find regex 'Test[12]' in lv_field1.
if sy-subrc eq 0.
...
endif.
lg ADT

EDIT: Die RegEx lautet richtigerweise 'Test[12]'

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Murdock

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: String in Operator?

Beitrag von Murdock (Specialist / 115 / 55 / 8 ) »
Danke für die Antworten.

Dass es mit CASE oder gar einer RANGE Tabelle geht ist klar.

Bei meinem Beispiel ginge ja auch

Code: Alles auswählen.

IF lv_feld1 CP 'Test*'.

ENDIF.
(ja das trifft mehr als nur Test1 und Test2)
(wobei ich mal anmerken muss, dass ich die Operatoren wie CP, CS, CA, ... von der Sache her ziemlich gut finde :up: )

Ich nehme also mit:
1. es gibt keinen "in" Operator wie ich ihn gesucht habe
2. ich bin nicht zu blöd zum Lesen der ABAP Hilfe :D

Gruß,
Murdock.

Edit sagt, man macht nur 'ne Klammer zu, wenn man sie auch aufgemacht hat...

Re: String in Operator?

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
frei nach http://www.tricktresor.de/content/index ... 46&aID=241
könnte sowas vielleicht auch funktionieren?

Code: Alles auswählen.

IF 'Test1/Test2' CS lv_feld1.

Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
Murdock

schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: String in Operator?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
ja!

Aber wie schon auf der Seite erwähnt hat das Konstrukt einige Nachteile.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: String in Operator?

Beitrag von Murdock (Specialist / 115 / 55 / 8 ) »
Alexander D. hat geschrieben:

Code: Alles auswählen.

IF 'Test1/Test2' CS lv_feld1.
Auch schön, danke. :D

Gruß,
Murdock.

Seite 1 von 1

Vergleichbare Themen

16
Antw.
865
Views
FOR-Operator
von ralf.wenzel » 01.09.2020 17:19 • Verfasst in ABAP® Core
2
Antw.
2301
Views
operator
von kostonstyle » 06.05.2008 08:51 • Verfasst in ABAP® für Anfänger
8
Antw.
220
Views
IN-OPERATOR - wer gewinnt?
von msfox » 07.09.2023 11:05 • Verfasst in ABAP® für Anfänger
7
Antw.
2541
Views
Wie funktioniert der Z-Operator?
von DeathAndPain » 14.09.2017 18:10 • Verfasst in ABAP® für Anfänger
1
Antw.
1550
Views
dynamischer Operator
von bliP! » 22.05.2006 14:24 • Verfasst in ABAP Objects®

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140