语法:
REPLACE <str1> WITH <str2> INTO <c> [LENGTH <l> ].
ABAP/4 搜索字段 <c> 中模式 <str1> 前 <l> 个位置第一 次出现的地 方。如果未 指定长度, 按全长度搜 索模式 <str1>。 然后,语句 将模式 <str1> 在字段 <c> 中第一次出 现的位置用 字符串 <str2> 替换。如果 指定长度<l>, 则只替换模 式的相关部 分。 如果将系统 字段 SY-SUBRC 的返回代码 设置为0, 则说明在 <c> 中找到 <str1> 且已用<str2>替换。非 0 的返回代码 值意味着未 替换。
<str1>、 <str2> 和 <len> 可为变量。
代码:
DATA: T(10) VALUE 'abcdefghij',
STRING LIKE T,
STR1(4) VALUE 'cdef',
STR2(4) VALUE 'klmn',
STR3(2) VALUE 'kl',
STR4(6) VALUE 'klmnop',
LEN TYPE I VALUE 2.
STRING = T.
WRITE STRING.
REPLACE STR1 WITH STR2 INTO STRING.
WRITE / STRING.
STRING = T.
REPLACE STR1 WITH STR2 INTO STRING LENGTH LEN.
WRITE / STRING.
STRING = T.
REPLACE STR1 WITH STR3 INTO STRING.
WRITE / STRING.
STRING = T.
REPLACE STR1 WITH STR4 INTO STRING.
WRITE / STRING.
结果显示:
abcdefghij abklmnghij abklmnefgh abklghij abklmnopgh
请注意,在最后一行中字段 STRING 是如何在右 边截断的。长度为 4 的搜索模式 ‘cdef’ 用长度为6的 ‘klmnop’ 替换。然后 ,填充字段 STRING 的剩余部分直到字段结尾。