最近有网友问及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
分享到:
相关推荐
- 示例: `DATATEST_STRING TYPE STRING` 定义了一个字符串变量,默认值为空字符串。 10. **字节序列 (XSTRING):** - 描述: 用于存储可变长度的字节序列。 - 默认初始值: 空字节序列。 - 示例: `DATATEST_...
根据提供的文件信息,我们可以推断出这是一段ABAP编程代码,主要功能是计算...综上所述,这段ABAP代码实现了一个完整的SMK计算逻辑,涵盖了参数读取、字符串处理、字符编码转换等多个方面,是一个典型的ABAP应用示例。
3. 字符串和内表:字符串不能直接移动到包含字符串或xstring的结构体中。内表可以包含静态数据对象(简单数据类型,不包括string和xstring的结构体)和动态数据对象(string,xstring,包含string或xstring的结构体...
10. Xstring:二进制字符串,不受长度限制,但通常不超过524,287字节。 在使用P(Packed)类型时,需要注意其特殊的存储方式。P类型数据是压缩的定点数,占用内存字节数和数值范围取决于定义时的数据大小和小数点后...
具体实现细节未完全给出,但从已有的代码片段中可以看出,程序首先将输入参数组合成一个字符串,并进行大写转换,然后进行一些特定的字符处理操作,以确保生成的Solution Manager Key符合预期的格式。 通过上述ABAP...
而字符串类型String和十六进制字符串XString则是长度可变的类型,它们在内存中占用的长度可以在运行时动态变化,提供更大的灵活性,避免了因长度预设不当导致的溢出问题。 在ABAP中,数据对象是基于数据类型创建的...
9. 数据类型:ABAP 中的数据类型有多种,包括固定长度的 C, N, T, D, I, F, P, X 以及动态长度的 String 和 XString。选项 A, B, C 正确描述了这些类型的基本特征。选项 D 错误,因为在声明数据对象时未指定类型,...
字符串类型C需要指定长度,N类型是数字的文本表示,D类型表示日期,T类型表示时间,X类型用于十六进制表示,而String是不定长的字符串类型,支持多种操作如Find、Replace、Translate、Shift、CONDENSE、OVERLAY、...
* 变长字符串类型(STRING)。 * 变长字节序列类型(XSTRING)。 * 字符串类型(C):定义变量时指定字符个数。 * 数字字符串类型(N):定义变量时指定数值字符个数。 * 字节序列类型(X):定义变量时指定字节数。...
ABAP的数据类型包括日期(D)、时间(T)、整数(I)、浮点(F)、STRING、XSTRING、固定长度字符串(C)、数字字符串(N)、字节序列(X)以及组合数值类型(P)等。ABAP支持多种运算,如算术运算、逻辑运算、时间日期运算等,以及...
其中,XSTRING是用于ASCII数据的动态长度字符串。此外,还可以通过TYPES语句定义用户自定义的基本数据类型,例如定义新的整型或浮点数类型。这些自定义类型可以是程序内部的,也可以在SE11事务码中定义为全局类型。 ...
例如,可以在ABAP程序中声明一个字符变量来存储字符串,或者声明一个整数变量来存储数值计算的结果。 在ABAP对象方面,ABAP提供了面向对象编程的特性,支持类、方法、接口等概念。ABAP对象是程序中用于表示和处理...
2. **调用函数SCMS_STRING_TO_XSTRING**:这个函数用于将字符串转换为二进制数据。函数的参数包括待转换的文本i_datain、MIME类型lv_mimetype以及用于接收二进制数据的缓冲区lstr_tmp。 3. **异常处理**:如果函数...
9. `string` 类型:类似于其他语言的字符串,长度可变。 10. `Xstring` 类型:用于存储二进制数据。 1.1.1. `P`类型(压缩型数据)详解: `P`类型是一种特殊的定点数类型,它可以实现精确的数值计算,避免浮点数...
预定义数据类型包括D(日期)、T(时间)、I(整数)、F(浮点数)、STRING(变长字符串)、XSTRING(变长字节序列)等。非完整数据类型如C(字符串)、N(数字字符串)、X(字节序列)和P(组合数值)需要在定义...
常见的数据类型包括字符型`C`、数字文本型`N`、日期型`D`、时间型`T`、十六进制字节型`X`、整型`I`、打包数字型`P`、浮点型`F`、字符串型`STRING`和字节序列型`XSTRING`等。 例如,在代码片段中,`DATA: SHUJU TYPE...
ABAP提供了多种字符类型,如标准字符串类型`STRING`、定长字符串类型`CHAR`等。 - **数值类型**:用于存储数字数据,包括整数、浮点数等。正确选择数值类型对于保证数据精度至关重要。 - **日期与时间类型**:ABAP...