ABAP字符串按长度拆分

 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 .

 

转载于:https://www.cnblogs.com/sicf/p/5175406.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值