| Note: Built-In Function Rules Usage Options |
Scans a string for the first occurrence of a pattern.
This table shows the arguments used in this function.
No | Type | Req/ Opt | Description | Min Len | Max Len | Min Dec | Max Dec |
|---|---|---|---|---|---|---|---|
1 | A | Req | String to be scanned | 1 | Unlimited | ||
2 | A | Req | Pattern to be located. Enter in upper and/or lower case as required. This parameter is ignored for RDMLX Lists. Any value can be specified. Whatever the list entry length is, it will be saved correctly. | 1 | Unlimited | ||
3 | N | Opt | Position to start scan Range: 1 - maximum possible length of the string to be scanned. Default: 1 | 1 | 11 | 0 | 0 |
4 | A | Opt | Compare in uppercase? 1 = No, compare all cases Default: 1 See Note. | 1 | 1 | ||
5 | A | Opt | Trim trailing pattern blanks? 1 = Yes Default: 1 -trim trailing blanks from wild card pattern. | 1 | 1 | ||
6 | A | Opt | Wild card in scan pattern Values: Blank = no wild card activated. Non-blank = wild card activated. Default: no wild card. Do not use a blank as the left most character of the pattern. An error will result if you do this. | 1 | 1 |
No | Type | Req/ Opt | Description | Min Len | Max Len | Min Dec | Max Dec |
|---|---|---|---|---|---|---|---|
1 | N | Req | Position of first occurrence in string or error code. Any one of these values may be returned: +p = Occurrence of pattern found at position "p" 0 = Pattern not found in string to be scanned. -1 = Error. Pattern is longer than string. -2 = Error. Pattern length is less than 1. -3 = Error. First char in pattern is wild. -4 = Error. Pattern is blank and trim requested. -5 = Error. Starting position is invalid . | 1 | 3 | 0 | 0 |
Note: The result is converted to upper case for string comparison. Following is an example of some results.
|
This code searches for the string "where" in the text "find where it exists".
Function Options(*DIRECT)
Define Field(#PATTERN) Reffld(#SKILCODE) Label('Find Pattern') Default(WHERE)
Define Field(#STARTPOS) Reffld(#STD_IDNOS) Label('Start Pos') Default(1)
Override Field(#STD_FLAG) Label('Case (1/0)?') Default('''1''')
Define Field(#TRIM) Reffld(#STD_FLAG) Label('Trim (1/0)') Default('''1''')
Define Field(#WILD) Reffld(#STD_FLAG) Label('WildCard?') Default('')
Override Field(#STD_IDNOS) Label('Occurs at Pos.') Edit_Code(L)
Change Field(#STD_TEXTS) To('''Find where it exists''')
Begin_Loop
Request Fields((#STD_TEXTS *LOWER) #PATTERN #STARTPOS #STD_FLAG #TRIM #WILD (#STD_IDNOS *OUT))
Use Builtin(SCANSTRING) With_Args(#STD_TEXTS #PATTERN #STARTPOS #STD_FLAG) To_Get (#STD_IDNOS)
End_Loop