SEARCH
Variants
1. SEARCH f FOR g.
2. SEARCH itab FOR g.
Variant 1
SEARCH f FOR g.
Additions
1. ... ABBREVIATED
2. ... STARTING AT n1
3. ... ENDING AT n2
4. ... AND MARK
Effect
Searches the field f for the string in the field
g . This string can have any of the following formats:
'str' a character string (trailing blanks are ignored)
'.str.' any character string between the periods
'*str' a word ending with "str", including the word "str"
'str*' a word beginning with "str", including the word "str"
You can use the following characters as delimiters:
' ', ',', ';', ':', '.', '!', '?', '(', ')', '+', '/' and '='.
The return code value is set as follows:
SY-SUBRC = 0
The search string g was found in the field
f . SY-FDPOS contains the offset of the found
string or the found word within the field.
SY_SUBRC = 4
The search string g was not found in the
field f .
Addition 1
... ABBREVIATED
Effect
Searches the field f for a word containing the
character string specified in the field. Here, the characters specified
in g may be separated by other characters in a word. If the
string g occurs in a word, the return code in system field
SY-SUBRC is set to 0. The first letter of the search string
g and the word must match.
Example
-
DATA F(50).
MOVE 'Alaska Texas California' TO F.
SEARCH F FOR 'Clfrn' ABBREVIATED.
Here, SY-SUBRC is set to 0, since not only does the string
'Clfrn' occur (separated by other characters) in
'California' , but 'Clfrn' and 'California' begin
with the same letter.
Addition 2
... STARTING AT n1
Effect
Searches the field f starting from the position
n1 . Here, a field can be anything containing the corresponding
value. The first character in the field f is in position 1.
When you use the addition STARTING AT , the position specified
for the found pattern in SY-FDPOS does not refer to the start of
the field, but to the position n1 .
Addition 3
... ENDING AT n2
Effect
Searches the field f up to the position
n2 .
Addition 4
... AND MARK
Effect
If the search string g is found, all the
characters of the search string and all the characters occurring in
between (in the case of SEARCH ABBREVIATED ) are converted to
upper case in the field f .
Example
-
DATA F(20) VALUE 'Peter Paul Mary'.
SEARCH F FOR '*UL' AND MARK.
SY-SUBRC is now set to 0, since the search string was found in
'Paul' . SY-FDPOS has the value 6, since the character
string found starts at the offset 6. Also, the search string is marked,
so that the new contents of f are as follows:
'Peter PAUL Mary'
Variant 2
SEARCH itab FOR g.
Additions
1. ... ABBREVIATED
2. ... STARTING AT lin1
3. ... ENDING AT lin2
4. ... AND MARK
Effect
Searches the internal table itab for the string
in field g . The string can have the same format as in variant 1.
The value of SY-SUBRC is set to 0, if the search string in the
field or table is found. The system field SY-TABIX then contains
the number of the table line where the string was found. Meanwhile,
SY-FDPOS specifies the offset of the found string within the
table line.
Note
The statement does not search the header line of an
internal table itab .
Addition 1
... ABBREVIATED
Effect
As with SEARCH ABBREVIATED , searches the internal
table itab for a word that contains the character string
specified in the field g . Here, the characters specified in
g can be separated by other characters. The return code value of
the system field SY-SUBRC is set to 0, if the string g
occurs in a word. The first letter of the search string g and
the word must match.
Addition 2
... STARTING AT lin1
Effect
Searches the internal table itab starting from
line lin1 to the end. lin1 can be a field that contains
the corresponding values.
Addition 3
... ENDING AT lin2
Effect
Searches the internal table itab up to the line
lin2 .
Addition 4
... AND MARK
Effect
If the search string g is found, all the
characters of that search string and all the characters occurring in
between (in the case of SEARCH ABBREVIATED ) are converted to
upper case in the internal table itab .
Example
Let T be an internal table which is empty:
-
DATA: BEGIN OF T OCCURS 100,
LINE(80),
END OF T.
MOVE 'Alaska Texas ' TO T.
APPEND T.
MOVE 'California Arizona ' TO T.
APPEND T.
SEARCH T FOR '*ONA' AND MARK.
SY-SUBRC is now set to 0 because the search string was found
in 'Arizona' . SY-TABIX contains the value 2 because
'Arizona' appears in the second line of the table T.
SY-FDPOS is set to 11 because the found character string begins
at the offset 11. Also, the search string was marked in the second line
in such a way that the contents of that line now look as follows:
'California ARIZONA'
Related
REPLACE ,
OVERLAY ,
SHIFT ,
SPLIT ,
TRANSLATE
Note
Performance
Searching for the string '*str' in an internal table is much more
runtime-intensive (approx. 500000
msn (standardized microseconds)) than
searching for 'str*' (approx. 10000 msn) or 'str' (approx. 35 msn). The
latter involves searching a table with 230 entries and 15 fields.
If you perform a search in a field which is 35 bytes long for '*str' or
'str*', the runtime consumption is approx. 600 msn, whereas searching
for 'str' takes about 25 msn.
Index
© SAP AG 1996