我正在转换一些代码。过去使用过字符串,现在应该使用rawstring。
这适用于字符串,但现在无法使用rawstring:
data my_table TYPE TABLE OF rawstring.
concat_lines_of( table = my_table sep = `, `)
Run Code Online (Sandbox Code Playgroud)
如何使以上线条起作用?
在我的情况下,rawstring包含utf8编码的数据。
结果应为xstring(字节序列)
在这里并不重要,但是在Python中看起来像这样:
my_list = [my_byte_sequence1, my_byte_sequence2, my_byte_sequence3]
big_byte_sequence = b', '.join(my_list)
Run Code Online (Sandbox Code Playgroud)
经典的请求是将一个字节表串联成一个字节串,这样就添加了逗号来标识原始行是没有意义的,因为不可能将逗号存储为字符(替代:在给定的字符中进行编码)代码页)。
如果问题仅是经典的要求,那么CONCAT_LINES_OF该XSTRING类型就没有等价物了。
一种解决方法是使用REDUCE:
DATA my_table TYPE TABLE OF xstring.
my_table = VALUE #( ( CONV #( '01FF' ) ) ( CONV #( 'BEEF' ) ) ).
DATA(my_xstring) = REDUCE #(
INIT aux TYPE xstring
FOR <x> IN my_table
NEXT aux = COND #( WHEN aux IS INITIAL THEN <x> ELSE aux && <x> ) ).
ASSERT my_xstring = '01FFBEEF'.
Run Code Online (Sandbox Code Playgroud)