ABAP Keyword Documentation → ABAP - Reference → Processing Internal Data → Character String and Byte String Processing → Statements for Character String and Byte String Processing → REPLACE
REPLACE SECTION OF
Other versions: 7.31 | 7.40 | 7.54
Syntax
REPLACE SECTION [OFFSET off] [LENGTH len] OF dobj WITH new
[IN {CHARACTER|BYTE} MODE].
Addition
Effect
When position-based replacements are performed, the section in dobj
is replaced
starting at the offset specified in off
for the length specified in
len with the content of the operand new
. off
and len
are
numeric expression positions with the operand type i
. new
is a
functional operand position.
At least one of the additions OFFSET
or LENGTH
must be specified. If an offset is specified but no length, the content of the data object dobj
is replaced starting at the offset off
and continuing to the end. If a length
is specified but no offset, the offset 0 is used implicitly. The values of off
and len
must be greater than or equal to 0 and the section specified by
off and len
must be located within the length of dobj
.
Addition
... IN {CHARACTER|BYTE} MODE
Effect
The optional IN {CHARACTER|BYTE} MODE
addition determines whether
character string or byte string processing
is carried out. If the addition is not specified, character string processing is performed. Depending
on the processing type, dobj
and new
have to be character-like or byte-like.
Example
The statement FIND
is used to determine the offset and length of the first
word "know" in the data objects text1
and text2
and to replace this section in a position-based manner in text1
and
text2 with "should know that". After the first REPLACE
statement,
text1
contains the complete content "I should know that you know" and
sy-subrc contains 0. After the second REPLACE
statement, text2
contains the truncated content "I should know that" and sy-subrc
contains 2.
DATA: text1 TYPE string,
text2 TYPE c LENGTH 18,
off TYPE i,
len TYPE i.
text1 = text2 = 'I know you know'.
FIND 'know' IN text1 MATCH OFFSET off
MATCH LENGTH len.
REPLACE SECTION OFFSET off LENGTH len OF:
text1 WITH 'should know that',
text2 WITH 'should know that'.
Exceptions
Catchable Exceptions
CX_SY_RANGE_OUT_OF_BOUNDS
-
Cause: Specified offset or length violated the bounds of the string
dobj
.
Runtime Error:REFI_WRONG_SECTION