1 REPORT ytest_012 MESSAGE-ID oo.
2
3 DATA: l_string(1024) TYPE c.
4 DATA: l_string1(1024) TYPE c.
5 DATA: l_string2(1024) TYPE c.
6 DATA: l_pos TYPE i.
7 DATA: BEGIN OF ls_line,
8 line(100) TYPE c,
9 END OF ls_line,
10 lt_line LIKE TABLE OF ls_line.
11
12 l_string = ‘asdgtrtfjdsjfiuiowhjhqhbdsnbkjjvkjckl’.
13
14 DO.
15 CALL FUNCTION ‘STRING_SPLIT_AT_POSITION’
16 EXPORTING
17 string = l_string
18 pos = 5
19 * LANGU = SY-LANGU
20 IMPORTING
21 string1 = l_string1
22 string2 = l_string
23 pos_new = l_pos
24 EXCEPTIONS
25 string1_too_small = 1
26 string2_too_small = 2
27 pos_not_valid = 3
28 OTHERS = 4
29 .
30 IF sy-subrc = 0 .
31 * WRITE:/ l_string1, ‘-‘.
32 ls_line-line = l_string1 .
33 APPEND ls_line TO lt_line .
34 ELSEIF sy-subrc = 3 .
35 * WRITE:/ l_string.
36 ls_line-line = l_string .
37 APPEND ls_line TO lt_line .
38 EXIT .
39 ENDIF.
40
41 ENDDO.
42
43 CLEAR: ls_line .
44 LOOP AT lt_line INTO ls_line.
45
46 WRITE:/ ls_line-line.
47
48 ENDLOOP.
49
50
51 ” 用下面的这个方法来截,不会把中文截断,而且中文当2个长度(as_character <> ‘X’)
52 CALL FUNCTION ‘TEXT_SPLIT’
53 EXPORTING
54 length = 3
55 text = lv_str
56 * as_character = ‘X’
57 IMPORTING
58 line = lv_str1
59 rest = lv_str2 .
60
61 WRITE:/ lv_str .
62 WRITE:/ lv_str1 .
63 WRITE:/ lv_str2 .