ABAP 字符串查找示例代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*----------------------------------------------------------------------*
***INCLUDE YDEMO_CHAR_SHOWSEARCH .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form SHOWSEARCH
*& 3、字符串查找
*&---------------------------------------------------------------------*
*&
*& Program Name : YDEMO_CHAR
*& Project : DEMO
*& Program Title: 字符串操作演示
*& Created by : Cee.Shi
*& Created on : 2011/12/20
*& Version : 1.0
*& Function Description:
*& 字符串的各种操作,包含:
*& 1、字符串连接
*& 2、字符串拆分
*& 3、字符串查找
*& 4、字符串替换
*& 5、字符串长度
*& 6、字符串位移
*& 7. 字符串指定位移
*& 8. 字符串特殊位移
*& 9. 偏移量赋值
*& 10. 字符串部分分配
*& 11. 字符串转换
*& 12. 字符串覆盖
*& 13. 字符串压缩
*&
*&---------------------------------------------------------------------*
*& Modification Log:
*&
*&---------------------------------------------------------------------*
*------------------字符串搜索输入参数界面------------------------
SELECTION-SCREEN BEGIN OF SCREEN 300.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(50) S3STR1.
PARAMETERS: P3STR1 TYPE STRING DEFAULT 'ABCDEFG'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(50) S3STR2.
PARAMETERS: P3STR2 TYPE STRING DEFAULT 'CD'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF SCREEN 300.
INITIALIZATION.
S3STR1 = '要查找的字符串'.
S3STR2 = '查找模式(可使用通配符“*”,前后加“.”表示不忽略尾部空格)'.
FORM SHOWSEARCH .
CALL SELECTION-SCREEN 300.
SEARCH P3STR1 FOR P3STR2.
WRITE /.
WRITE: / ' 在一个字串中查找一个子字串模式,使用SEARCH语句:'.
FORMAT COLOR COL_GROUP. WRITE /.
WRITE: / ' SEARCH c FOR str. '.
FORMAT COLOR OFF. WRITE /.
WRITE: / '该语句在字段c中查找字符串str。如果找到,则将SY-SUBRC返回0,SY-FDPOS返回字段c中',
/ '该字符串的位置(从左算起的字节偏移量),否则将SY-SUBRC返回4。',
/ '所谓模式是指要查找的字串不一定与str完全一致,可以设定忽略或保留str末尾的空格,',
/ '或利用通配符“*”扩大其查找灵活性,有下列几种模式:',
/ ' str 搜索str并忽略尾部空格。',
/ ' .str. 搜索str,但是不忽略尾部空格。',
/ ' *str 搜索以str结尾的单词。',
/ ' str* 搜索以str开始的单词。',
/ '单词指字符串中用空格、逗号、句号、分号、冒号、问号、叹号、括号、斜杠、加号和等',
/ '号等符号分隔的子串。也就是说,任何两个上述符号中间的字符序列都构成一个单词。'.
WRITE /.
ULINE.
WRITE /.
WRITE: / '在“' NO-GAP,
P3STR1 NO-GAP,
'”中查找模式“' NO-GAP,
P3STR2 NO-GAP,
'”的结果如下:' NO-GAP.
WRITE: / ' SY-SUBRC:' NO-GAP, SY-SUBRC NO-GAP.
WRITE: / ' SY-FDPOS:' NO-GAP, SY-FDPOS NO-GAP.
WRITE: / '该结果表示:'.
IF SY-SUBRC EQ 0.
WRITE: / ' 模式“' NO-GAP,
P3STR2 NO-GAP,
'”在字串“' NO-GAP,
P3STR1 NO-GAP,
'”中的位置为:' NO-GAP,
SY-FDPOS NO-GAP,
'。' NO-GAP.
ELSE.
WRITE: / ' 在“' NO-GAP,
P3STR1 NO-GAP,
'”中未找到模式“' NO-GAP,
P3STR2 NO-GAP,
'”。' NO-GAP.
ENDIF.
WRITE /.
ULINE.
WRITE /.
WRITE: / '本次操作使用的语句为:'.
WRITE: / 'SEARCH ''' NO-GAP,
P3STR1 NO-GAP,
''' FOR ''' NO-GAP,
P3STR2 NO-GAP,
'''.' NO-GAP.
WRITE /.
SET PF-STATUS 'STASEARCH'.
ENDFORM. " SHOWSEARCH