SAP ABAP - Stringhe
Strings, che sono ampiamente utilizzati nella programmazione ABAP, sono una sequenza di caratteri.
Utilizziamo variabili di tipo C di dati per contenere caratteri alfanumerici, con un minimo di 1 carattere e un massimo di 65.535 caratteri. Per impostazione predefinita, questi sono allineati a sinistra.
Creazione di stringhe
La seguente dichiarazione e inizializzazione crea una stringa composta dalla parola "Hello". La dimensione della stringa è esattamente il numero di caratteri nella parola "Hello".
Data my_Char(5) VALUE 'Hello'.
Il seguente programma è un esempio di creazione di stringhe.
REPORT YT_SEP_15.
DATA my_Char(5) VALUE 'Hello'.
Write my_Char.
Il codice precedente produce il seguente output:
Hello
Lunghezza della stringa
Per trovare la lunghezza delle stringhe di caratteri, possiamo usare STRLEN statement. La funzione STRLEN () restituisce il numero di caratteri contenuti nella stringa.
Esempio
REPORT YT_SEP_15.
DATA: title_1(10) VALUE 'Tutorials',
length_1 TYPE I.
length_1 = STRLEN( title_1 ).
Write: / 'The Length of the Title is:', length_1.
Il codice precedente produce il seguente output:
The Length of the Title is: 9
ABAP supporta un'ampia gamma di istruzioni che manipolano le stringhe.
S.No. | Dichiarazione e scopo |
---|---|
1 | CONCATENATE Due stringhe vengono unite per formare una terza stringa. |
2 | CONDENSE Questa istruzione elimina i caratteri di spazio. |
3 | STRLEN Utilizzato per trovare la lunghezza di un campo. |
4 | REPLACE Utilizzato per sostituire i personaggi. |
5 | SEARCH Per eseguire ricerche in stringhe di caratteri. |
6 | SHIFT Utilizzato per spostare il contenuto di una stringa a sinistra oa destra. |
7 | SPLIT Utilizzato per dividere il contenuto di un campo in due o più campi. |
Il seguente esempio fa uso di alcune delle dichiarazioni sopra menzionate:
Esempio
REPORT YT_SEP_15.
DATA: title_1(10) VALUE 'Tutorials',
title_2(10) VALUE 'Point',
spaced_title(30) VALUE 'Tutorials Point Limited',
sep,
dest1(30),
dest2(30).
CONCATENATE title_1 title_2 INTO dest1.
Write: / 'Concatenation:', dest1.
CONCATENATE title_1 title_2 INTO dest2 SEPARATED BY sep.
Write: / 'Concatenation with Space:', dest2.
CONDENSE spaced_title.
Write: / 'Condense with Gaps:', spaced_title.
CONDENSE spaced_title NO-GAPS.
Write: / 'Condense with No Gaps:', spaced_title.
Il codice precedente produce il seguente output:
Concatenation: TutorialsPoint
Concatenation with Space: Tutorials Point
Condense with Gaps: Tutorials Point Limited
Condense with No Gaps: TutorialsPointLimited
Note -
In caso di concatenazione, il "sep" inserisce uno spazio tra i campi.
L'istruzione CONDENSE rimuove gli spazi vuoti tra i campi, ma lascia solo lo spazio di 1 carattere.
"NO-GAPS" è un'aggiunta facoltativa all'istruzione CONDENSE che rimuove tutti gli spazi.