Stringoperationen (ABAP): Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Sammlung von Codebeispielen zur Nutzung von ABAP Stringfunktionen.
Sammlung von Codebeispielen zur Nutzung von ABAP Stringfunktionen.


Welcher Teil davon gilt für den Datentyp NUMC?
Dieser Artikel beschäftigt sich mit eingebauten zeichenartigen Typen.


== Teilstring ==
== Teilstring ==
Zeile 64: Zeile 64:
APPEND pa_token TO lt_fields.
APPEND pa_token TO lt_fields.
</syntaxhighlight>
</syntaxhighlight>
== Numerische Textfelder ==
<syntaxhighlight lang="abap">
DATA: e_text    TYPE string,
      lv_vers  TYPE n LENGTH 7,
      lv_vers1  TYPE n LENGTH 4,
      lv_vers2  TYPE n LENGTH 3.
START-OF-SELECTION.
  lv_vers = '2018014'.
  WRITE:
  / 'NUMC before: ', lv_vers.
  lv_vers1 = lv_vers(4).
  lv_vers2 = lv_vers+4(3).
  IF lv_vers2 > 12.
    lv_vers1 = lv_vers1 + 1.
    lv_vers2 = lv_vers2 - 12.
  ENDIF.
  CONCATENATE lv_vers1 lv_vers2 INTO e_text.
  WRITE:
  / 'NUMC after: ', e_text.
</syntaxhighlight>
== NUMC, DATS, TIMS ==
Die Datentypen c und string sind allgemeine zeichenartige Datentypen, während n, d und t spezielle Eigenschaften haben. Sie sind die einzigen eingebauten ABAP-Typen, die es passend zu speziellen Typen NUMC, DATS und TIMS des ABAP Dictionary gibt. Alle anderen speziellen Datentypen des ABAP Dictionary sind allgemeinen ABAP-Typen zugeordnet.


== Weitere Quellen ==
== Weitere Quellen ==

Version vom 19. Juni 2018, 14:40 Uhr

Sammlung von Codebeispielen zur Nutzung von ABAP Stringfunktionen.

Dieser Artikel beschäftigt sich mit eingebauten zeichenartigen Typen.

Teilstring

Extrahieren eines Teilstrings aus einem Gesamtstring:

DATA: LV_STRINGIN   TYPE STRING,
      LV_STRINGOUT  TYPE STRING.

LV_STRINGIN = 'Hallo Welt und guten Morgen Deutschland'.

LV_STRINGOUT = LV_STRINGIN+6(4).   # Kopiere vier Zeichen startend vom 7. Zeichen (1. Zeichen wird mit Null gerechnet).

# LV_STRINGOUT enthält am Ende "Welt"

Teilen von Strings

Teilen eines Strings anhand eines Trennzeichens in zwei Teile.

Das Trennzeichen (Hier: Leerzeichen) wird dabei entfernt.

DATA: LV_SPLIT1  TYPE STRING,
      LV_SPLIT2  TYPE STRING,
      LV_SPLCHAR TYPE CHAR1 VALUE ' '.

SPLIT C_DATA AT LV_SPLCHAR INTO LV_SPLIT1 LV_SPLIT2.

C_DATA = LV_SPLIT1.

Strings zusammensetzen

Strings können entweder inline oder mit speziellen Befehlen zusammengesetzt werden.

DATA: LV_STR1   TYPE STRING,
      LV_STR2   TYPE STRING,
      LV_STROUT TYPE STRING.

LV_STROUT = LV_STR1 LV_STR2.                   # Inline (?)

CONCATENATE LV_STR1 LV_STR2 INTO LV_STROUT.    # Mit CONCATENATE

Konvertierung in Groß-/Kleinschreibung

DATA: I_TEXT TYPE STRING.

TRANSLATE I_TEXT TO UPPER CASE.

CONCATENATE '*' I_TEXT '*' INTO I_TEXT.

WRITE:
/ 'I_TEXT:    ', I_TEXT.

Tabelle von Strings

PARAMETERS: pa_token TYPE c LENGTH 70.

DATA: lt_fields TYPE stringtab.

" Liste mit Spaltennamen erstellen
APPEND pa_token TO lt_fields.

Numerische Textfelder

DATA: e_text    TYPE string,
      lv_vers   TYPE n LENGTH 7,
      lv_vers1  TYPE n LENGTH 4,
      lv_vers2  TYPE n LENGTH 3.

START-OF-SELECTION.

  lv_vers = '2018014'.

  WRITE:
  / 'NUMC before: ', lv_vers.

  lv_vers1 = lv_vers(4).
  lv_vers2 = lv_vers+4(3).

  IF lv_vers2 > 12.
    lv_vers1 = lv_vers1 + 1.
    lv_vers2 = lv_vers2 - 12.
  ENDIF.

  CONCATENATE lv_vers1 lv_vers2 INTO e_text.
  WRITE:
  / 'NUMC after: ', e_text.

NUMC, DATS, TIMS

Die Datentypen c und string sind allgemeine zeichenartige Datentypen, während n, d und t spezielle Eigenschaften haben. Sie sind die einzigen eingebauten ABAP-Typen, die es passend zu speziellen Typen NUMC, DATS und TIMS des ABAP Dictionary gibt. Alle anderen speziellen Datentypen des ABAP Dictionary sind allgemeinen ABAP-Typen zugeordnet.

Weitere Quellen

http://www.saptraininghq.com/10-must-know-sap-abap-character-string-coding-techniques/