This is a test message to test the length of the message box.
Login
Modernes ABAP String Funktionen
Erstellt von Software-Heroes

ABAP - String Funktionen (Teil 2)

780

Im Modernen ABAP gibt es viele neue Inline-Funktionen. Mit denen für String- und Zeichenkettenverarbeitung wollen wir uns heute beschäftigen.

Werbung


Bei den vielen neuen Inline Funktionen die eingeführt wurden und auch mit der Veränderung bei der Verabeitung und dem Aufbau von Strings, wurden auch viele Funktionen für die Zeichenkettenverarbeitung noch einmal überarbeitet. Ein Aufruf als verkettete Anweisung oder direkt in einer Abfrage ist nun möglich.

Im heutigen Artikel wollen wir ein paar dieser Funktionen durchgehen und euch die Vorteile und Neuerungen zeigen die diese mit sich bringen.

 

to_upper/to_lower

Wie die neuen Befehle gut ausdrücken, handelt es sich hierbei um eine Konvertierung nach Groß- bzw. Kleinschreibung. Zum Beispiel kann man für einen Verlgiech den Wert konvertieren, ohne den Inhalt der Variable zu verändern. Der Vergleich im Beispiel führt zur Ausgabe von 'Found!'.


" Alt
DATA: ld_value TYPE string VALUE 'TESTTEXT'.
TRANSLATE ld_value TO UPPER CASE.

" Neu
DATA: ld_compare TYPE string VALUE 'TESTTEXT'.
IF to_upper( |Testtext| ) = ld_compare.
  WRITE: / 'Found!'.
ENDIF.

 

replace

Sucht und ersetzt Zeichenketten innerhalb eines Strings und gibt den neuen Wert als String wieder zurück. In der normalen Ausprägung wird nur ein Auftreten des Substrings ersetzt, dafür muss der Parameter "occ" übergeben werden.


" Alt
DATA(ld_text) = 'my pony is my pony and this is my house'.
REPLACE ALL OCCURRENCES OF 'my' IN ld_text WITH 'your'.

" Neu
DATA(ld_new) = replace( 
  val  = 'my pony is my pony and this is my house' 
  sub  = 'my'
  with = 'your'
  occ  = 0
).

 

substring

Die Substring Funktion extrahiert einen Teilstring aus einer Zeichenkette und gibt ihn zurück. Die Funktion kann auch in Kombination mit einer Inline-Deklaration verknüpft werden oder in einem If-Statement verwendet werden.


" Alt
DATA ld_text TYPE string VALUE 'My ABAP course'.
ld_text = ld_text 3(4).

" Neu
DATA(ld_part) = substring( val = 'My ABAP course' off = 3 len = 4 ).

 

concat_lines_of

Der Befehl verbindet den Inhalt der Tabellenzeilen und gibt einen neuen String der gesamten Länge zurück. In unserem gezeigten Beispiel hat die alte Methode noch den Nachteil, das abschließend noch ein Leerzeichen angehangen wird. Mit ein paar mehr Zeilen Code, kann auch dieser Umstand korrigiert werden.


" Vorbereitung
DATA:
  lt_sstr TYPE string_table.
  ld_text TYPE string.

APPEND `This` TO lt_sstr.
APPEND `is` TO lt_sstr.
APPEND `my` TO lt_sstr.
APPEND `new` TO lt_sstr.
APPEND `house` TO lt_sstr.

" Alt
LOOP AT lt_sstr INTO DATA(ld_sub).
  ld_text = ld_text && ld_sub && ` `.
ENDLOOP.

" Neu
ld_text = concat_lines_of( table = lt_sstr sep = ` ` ).

 

Fazit

Viele der neuen Inline-Funktionen gibt es bereits in einer alten Weise. Die neuen Funktionen haben den Vorteil, das sie miteinander verbunden, in If-Statements eingesetzt werden können und einen neuen Wert generieren. Damit sind sie um einiges flexibler einsetzbar als die alten Funktionen.

 

Quelle:
cadaxo - Neue Stringfunktionen
SAP Dokumentation Übersicht


Enthaltene Themen:
Modernes ABAPString Funktionen
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP - Type Casting

Kategorie - ABAP

Wie kommst du eigentlich an den ursprünglichen Typ einer Klasse bzw. Instanz, wenn diese in einer generischen Tabelle übergeben wird? In diesem Artikel prüfen wir die Möglichkeiten.

16.04.2024

ABAP - RETURN value

Kategorie - ABAP

Nach all den Jahren ist nun endlich der "echte" Return in ABAP angekommen, in diesem Artikel zeigen wir dir, wie der funktioniert und was er kann.

13.02.2024

ABAP Deep Dive - FOR (Schleifen)

Kategorie - ABAP

Schauen wir uns einmal die FOR Schleife etwas näher an. Wie funktioniert sie? Was muss ich beachten und was kann ich damit tun?

14.04.2023

ABAP Deep Dive - Tabellenzugriff (intern)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal den Tabellenzugriff auf interne Tabellen an und wie sie den READ TABLE ablösen.

03.02.2023

ABAP - FINAL

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal das neue FINAL Sprachkonstrukt an, wie es funktioniert und was du damit anstellen kannst.

23.12.2022