ABAP--关于字符串String到XString XString to String转换代码

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

最近有网友问及String到XString XString to String转换,下面代码供大家参考

代码如下

report zrich_0001.

data: s type string,
      h(1) type x,
      c(1) type c,
      byte(2) type c,
      length type i,
      l_bindata type xstring,
      l_cntbin   TYPE sdokcntbins.

FIELD-SYMBOLS: <DUMMY>.

s = 'This Is A String!'.
length = strlen( s ).

* Use Write to Convert String to XSTRING
write:/ 'Use Write to Convert String to XSTRING' .
ULINE /1(80).
New-line.
do length times.
  byte = ( sy-index - 1 ).
  c = s+byte(1).
* You can do this
  ASSIGN h TO <DUMMY> TYPE 'X'.
  WRITE c TO <DUMMY>.
  write: h.
enddo.

* Use Function to Convert String to XSTRING
call function 'SCMS_STRING_TO_XSTRING'
  exporting
    text           = s
*     MIMETYPE       = ' '
  importing
    buffer         = l_bindata
  exceptions
    failed         = 1
    others         = 2
          .
if sy-subrc = 0.
  ULINE /1(80).
  write:/ 'Use Function to Convert String to XSTRING'.
  ULINE /1(80).
  write:/ l_bindata.
endif.
*
** 1. Convert input-table to XSTRING
*CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
*     EXPORTING: input_length = length
*     IMPORTING: buffer       = l_bindata
*     TABLES:    binary_tab   = l_cntbin
*     EXCEPTIONS: failed      = 1
*                 OTHERS      = 2.
*IF sy-subrc <> 0.
*ENDIF.

 

* 2. Convert XSTRING to STRING
clear length.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  EXPORTING:
     buffer        = l_bindata
  IMPORTING:
    output_length = length
  TABLES:
    binary_tab   = l_cntbin.
if sy-subrc = 0.
  CALL FUNCTION 'SCMS_BINARY_TO_STRING'
    EXPORTING
      INPUT_LENGTH        = length
   IMPORTING
     TEXT_BUFFER         = S
     OUTPUT_LENGTH       = length
    TABLES
      BINARY_TAB          = l_cntbin
* EXCEPTIONS
*   FAILED              = 1
*   OTHERS              = 2
            .
  IF SY-SUBRC <> 0.
    ULINE /1(80).
    write:/ 'Convert XSTRING to output-table'.
    ULINE /1(80).
    write:/ s.
  endif.
endif.

 

3 Decode base64 (TYPE STRING) into plaintext (TYPE STRING).

FORM encode_base64 USING plaintext base64.
  CHECK plaintext IS NOT INITIAL.
  CONSTANTS:
    lc_op_enc TYPE x VALUE 36.
  DATA:
    l_len TYPE i,
    l_xstr TYPE xstring,
    lr_conv TYPE REF TO cl_abap_conv_out_ce.
  lr_conv = cl_abap_conv_out_ce=>create( ).
  l_len = strlen( plaintext ).
  lr_conv->write( data = plaintext n = l_len ).
  l_xstr = lr_conv->get_buffer( ).
  CALL 'SSF_ABAP_SERVICE'
    ID 'OPCODE' FIELD lc_op_enc
    ID 'BINDATA' FIELD l_xstr
    ID 'B64DATA' FIELD base64. "#EC CI_CCALL
ENDFORM.

 

 

相关函数

SCMS_STRING_TO_XSTRING

 

'ECATT_CONV_XSTRING_TO_STRING'

 

SCMS_BINARY_TO_XSTRING

 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值