REPORT ZDEMO_DATA_STRING.
* shifting strings by a given number of places
DATA: t1(10) TYPE c VALUE 'abcdefghij',
string1 LIKE t1.
string1 = t1.
WRITE string1.
SHIFT string1.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES LEFT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES RIGHT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES CIRCULAR.
WRITE / string1.
abcdefghij
bcdefghij
defghij
abcdefg
defghijabc
SKIP.
ULINE.
* shifting up to a given string
DATA: t2(10) TYPE c VALUE 'abcdefghij',
string2 LIKE t2,
str2(2) TYPE c VALUE 'ef'.
string2 = t2.
WRITE string2.
SHIFT string2 UP TO str2.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 LEFT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 RIGHT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 CIRCULAR.
WRITE / string2.
abcdefghij
efghij
efghij
abcdef
efghijabcd
SKIP.
ULINE.
* shifting a string depending on the first or last sign
DATA: t3(14) TYPE c VALUE ' abcdefghij',
string3 LIKE t3,
str3(6) TYPE c VALUE 'ghijkl'.
string3 = t3.
WRITE string3.
SHIFT string3 LEFT DELETING LEADING space.
WRITE / string3.
string3 = t3.
SHIFT string3 RIGHT DELETING TRAILING str3.
WRITE / string3.
abcdefghij
abcdefghij
abcdef
SKIP.
ULINE.
* replacing values
DATA: t4(10) TYPE c VALUE 'abcdefghij',
string4 LIKE t4,
str41(4) TYPE c VALUE 'cdef',
str42(4) TYPE c VALUE 'klmn',
str43(2) TYPE c VALUE 'kl',
str44(6) TYPE c VALUE 'klmnop',
len4 TYPE i VALUE 2.
string4 = t4.
WRITE string4.
REPLACE str41 WITH str42 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str42 INTO string4 LENGTH len4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str43 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str44 INTO string4.
WRITE / string4.
abcdefghij
abklmnghij
abklmnefgh
abklghij
abklmnopgh
SKIP.
ULINE.
* translating signs
DATA: t5(10) TYPE c VALUE 'AbCdEfGhIj',
string5 LIKE t5,
rule5(20) TYPE c VALUE 'AxbXCydYEzfZ'.
string5 = t5.
WRITE string5.
TRANSLATE string5 TO UPPER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 TO LOWER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 USING rule5. "#EC SYNTCHAR
WRITE / string5.
AbCdEfGhIj
ABCDEFGHIJ
abcdefghij
xXyYzZGhIj
SKIP.
ULINE.
* overlaying strings
DATA: t6(10) TYPE c VALUE 'a c e g i ',
string6 LIKE t6,
over6(10) TYPE c VALUE 'ABCDEFGHIJ',
str6(2) TYPE c VALUE 'ai'.
string6 = t6.
WRITE string6.
WRITE / over6.
OVERLAY string6 WITH over6.
WRITE / string6.
string6 = t6.
OVERLAY string6 WITH over6 ONLY str6.
WRITE / string6.
a c e g i
ABCDEFGHIJ
aBcDeFgHiJ
A c e g I
SKIP.
ULINE.
*searching strings
DATA string7(30) TYPE c VALUE 'This is a little sentence.'.
WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
ULINE /1(26).
SEARCH string7 FOR 'X'.
WRITE: / 'X', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 'itt '.
WRITE: / 'itt ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '.e .'.
WRITE: / '.e .', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '*e'.
WRITE: / '*e ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 's*'.
WRITE: / 's* ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
Searched SY-SUBRC SY-FDPOS
X 4 0
itt 0 11
.e . 0 15
*e 0 10
s* 0 17
SKIP.
ULINE.
*
DATA: string8(30) TYPE c VALUE 'This is a fast first example.',
pos8 TYPE i,
off8 TYPE i.
WRITE / string8.
SEARCH string8 FOR 'ft' ABBREVIATED.
WRITE: / 'SY-FDPOS:', sy-fdpos.
pos8 = sy-fdpos + 2.
SEARCH string8 FOR 'ft' ABBREVIATED STARTING AT pos8 AND MARK.
WRITE / string8.
WRITE: / 'SY-FDPOS:', sy-fdpos.
off8 = pos8 + sy-fdpos - 1.
WRITE: / 'Off:', off8.
This is a fast first example.
SY-FDPOS: 10
This is a fast FIRST example.
SY-FDPOS: 4
Off: 15
SKIP.
ULINE.
* length of a string
DATA: int TYPE i,
word1(20) TYPE c VALUE '12345',
word2(20) TYPE c ,
word3(20) TYPE c VALUE ' 4 '.
int = strlen( word1 ). WRITE int.
int = strlen( word2 ). WRITE / int.
int = strlen( word3 ). WRITE / int.
5
0
4
SKIP.
ULINE.
* condensing strings
DATA: string9(25) TYPE c VALUE ' one two three four',
len9 TYPE i.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9 NO-GAPS.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
one two three four !
Length: 25 one two three four !
Length: 18 onetwothreefour !
Length: 15
SKIP.
ULINE.
* concatenating strings
DATA: c1(10) TYPE c VALUE 'Sum',
c2(3) TYPE c VALUE 'mer',
c3(5) TYPE c VALUE 'holi ',
c4(10) TYPE c VALUE 'day',
c5(30) TYPE c ,
sep(3) TYPE c VALUE ' - '.
CONCATENATE c1 c2 c3 c4 INTO c5.
WRITE c5.
CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.
WRITE / c5.
Summerholiday
Sum - mer - holi - day
SKIP.
ULINE.
* splitting strings
DATA: string10(60) TYPE c ,
p1(20) TYPE c VALUE '++++++++++++++++++++',
p2(20) TYPE c VALUE '++++++++++++++++++++',
p3(20) TYPE c VALUE '++++++++++++++++++++',
p4(20) TYPE c VALUE '++++++++++++++++++++',
del10(3) TYPE c VALUE '***'.
string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
WRITE string10.
SPLIT string10 AT del10 INTO p1 p2 p3 p4.
WRITE / p1.
WRITE / p2.
WRITE / p3.
WRITE / p4.
Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5
Part 1
Part 2
Part 3
Part 4 *** Part 5
SKIP.
ULINE.
* moving parts of strings
DATA: mc1(10) TYPE c VALUE 'ABCDEFGHIJ',
mc2(10) TYPE c .
MOVE mc1 TO mc2 PERCENTAGE 40.
WRITE mc2.
MOVE mc1 TO mc2 PERCENTAGE 40 RIGHT.
WRITE / mc2.
ABCD
ABCD
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment