string - 在字符串表中搜索子字符串?
问题描述
- 我有一个包含以下数据(
<fs_content>
)的内部表:
OFFER/005056B467AE1ED9B1962F12360477E9-A
OFFER/005056B467AE1ED9B1962F12360477E9-B
OFFER/005056B467AE1ED9B1962F12360477E9-C
OFFER/005056B467AE1ED9B1962F12360477E9-D
OFFER/005056B467AE1ED9B1962F12360477E9-E
- 我必须重复搜索这样的值(
V1
):
OFFER-A
OFFER-B
OFFER-C
OFFER-M
OFFER-L
- 我希望识别出以下值,它们与内部表 ( ) 中的一行匹配
itab_v1_result
:
OFFER-A
OFFER-B
OFFER-C
但正如您所见,在直到符号之后<fs_content>
有相同的代码。005056B467AE1ED9B1962F12360477E9
OFFER/
-
现在,我想通过将值与中的每一行进行比较来将行从<fs_content>
字段分配给符号,但问题是值与行不完全相同。<fs_my_content>
V1
<fs_content>
V1
<fs_content>
我试图做这样的事情,但它不工作,<fs_my_content>
总是空的:
READ TABLE <fs_content> ASSIGNING <fs_my_content> WITH KEY ('ATTR_NAME') = V1.
我怎样才能itab_v1_result
控制我的期望?
我最小的可重现示例:
TYPES:
BEGIN OF ty_content,
attr_name TYPE string,
END OF ty_content.
FIELD-SYMBOLS:
<fs_my_content> TYPE any,
<fs_content> TYPE ANY TABLE.
DATA:
itab_content TYPE STANDARD TABLE OF ty_content,
itab_v1 TYPE STANDARD TABLE OF string,
itab_v1_result TYPE STANDARD TABLE OF string,
v1 TYPE string.
itab_content = VALUE #(
( attr_name = 'OFFER/005056B467AE1ED9B1962F12360477E9-A' )
( attr_name = 'OFFER/005056B467AE1ED9B1962F12360477E9-B' )
( attr_name = 'OFFER/005056B467AE1ED9B1962F123604D7E9-C' )
( attr_name = 'OFFER/005056B467AE1ED9B1962F12360477E9-D' )
( attr_name = 'OFFER/005056B467AE1ED9B1962F12360477E9-E' ) ).
itab_v1 = VALUE #(
( `OFFER-A` )
( `OFFER-B` )
( `OFFER-C` )
( `OFFER-M` )
( `OFFER-L` ) ).
ASSIGN itab_content TO <fs_content>.
LOOP AT itab_v1 INTO v1.
READ TABLE <fs_content> ASSIGNING <fs_my_content> WITH KEY ('ATTR_NAME') = v1.
IF sy-subrc = 0.
APPEND v1 TO itab_v1_result.
ENDIF.
ENDLOOP.
" Here, itab_v1_result is empty unfortunately!?
解决方案
您不能使用除 in 以外=
的任何运算符READ TABLE
。但是您可以在LOOP
.
首先,您必须以CS
可以识别的方式安排您的 V1,因此只需使用“-X”,这似乎是独一无二的。然后你可以在LOOP
子句中使用你的条件。
offset = STRLEN( v1 ) - 2.
v2 = v1+offset(2).
LOOP AT itab1 ASSIGNING <fs_itab1> WHERE attribute_name CS v2.
" do something
" if you only want to do it for the first entry you find, then just EXIT afterwards
ENDLOOP.
推荐阅读
- tensorflow - tensorflow“数据流图”的解释
- javascript - 是否有任何理论方法(一般规则)可以找出哪个脚本是最佳的并且加载速度更快?
- javascript - 从 ajax 获取时加载表单对象
- python - 打印不带括号的 Numpy 数组
- excel - Range().value="=(if) ... " 在 Excel 中
- mysql - 我应该从经常更新的表中的长 sql 查询中得到什么结果?
- java - Java - Try/Catch 不超过 InputMismatchException
- python - 如何只保存包含多行的变量的第一行和第二行?
- message-queue - 队列中有多个参与者,一个如何处理它?
- typescript - 使用 C3/D3 图形库的 Ionic 应用程序的 TypeScript 构建错误