abap - 使 concat_lines_of( ) 为 rawstring 工作
问题描述
我正在转换一些代码。过去使用字符串,现在应该使用原始字符串。
这适用于字符串,但现在使用 rawstring 失败:
data my_table TYPE TABLE OF rawstring.
concat_lines_of( table = my_table sep = `, `)
如何使上述线路工作?在我的例子中,rawstring 包含 utf8 编码的数据。结果应该是一个 xstring(字节序列)
这并不重要,但在 Python 中,这看起来像这样:
my_list = [my_byte_sequence1, my_byte_sequence2, my_byte_sequence3]
big_byte_sequence = b', '.join(my_list)
解决方案
经典的请求是将一个字节表连接成一个字节串,这样添加一个逗号来标识原始行是没有意义的,因为不可能将逗号存储为一个字符(替代方法:将其编码为给定的代码页)。
如果问题只是经典请求,那么类型就没有等价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'.
推荐阅读
- python - 运行 Python + Behave 自动化项目并尝试在其他步骤中执行步骤
- google-cloud-platform - 原因:com.google.api.client.googleapis.json.GoogleJsonResponseException: 412 Precondition Failed while remove bucket IAM Member
- ios - 如何使用 get 方法显示 Json 响应
- javascript - 如何限制用户在日期字段中手动输入日期
- reactjs - 单击处理程序未在 Firefox 中的 foreignObject 外部触发
- node.js - 如何将 NodeJS 应用程序转换为 war 文件
- c# - 如何将我的 HoloLens 应用程序的点击手势转换为我的桌面应用程序的鼠标单击?
- php - 用 php 和 mysql 处理大数据
- javascript - 使用 Cypress 在表中断言排序
- css - 位置:粘性不适用于内部元素