Trail: PROIV Documentation > Developer > PROIV Developer > Developing Functions > Events and Logic > IN-LINE SUBSTRINGING
|
|
Purpose
|
IN-LINE SUBSTRINGING retrieves a portion of an alphanumeric or wide string.
|
Syntax
|
operand1(operand2,operand3{,operand4})
|
Operation
|
operand1 if on the left side of an assignment, is any valid alphanumeric or wide character string variable; otherwise, it is any valid alphanumeric or wide character string constant, variable, or expression.
operand2 is any valid numeric constant, variable, or expression which represents the starting position (in terms of bytes for alphanumeric strings, and characters for wide strings) within operand1.
operand3 is any valid numeric constant, variable, or expression which represents the ending position (in terms of bytes for alphanumeric strings, and characters for wide strings) within operand1.
operand4 is optional, and when used must be set to “NLS". This operand enables you to locate a sub-string in a mixed multi-byte string (e.g. a string that contains both WIDE and normal ALPHA characters). The use of this option is recommended for any applications that may use multi-national code sets.
|
Remarks
|
The value returned is alphanumeric or wide and of the same type as operand1. If operand3 is greater than the number of characters in operand1, operand1 is appended with spaces to make it up to the length specified in operand3.
|
Example 1
|
The following logic routine is used to parse the field NAME into first and last name.
#X = INDEX(NAME,’ ‘)
IF #X = 0 THEN
LAST = NAME
ELSE
FIRST = NAME(1,#X-1)
LAST = NAME(#X+1,LEN (NAME))
ENDIF
Prior to processing the logic, the fields contain the following values:
NAME = the last name only or the first name followed by the last name
LAST = null
FIRST = null
#X = zero
After processing the logic, the fields contain the following values:
NAME unchanged.
LAST = the last name from field NAME.
FIRST = the first name from field NAME if one exists, otherwise it remains null.
#X = the position of the space in the field NAME if a first name was provided in field NAME,
otherwise it remains zero.
|
Example 2
|
The following logic routine is used to replace the month in a date string by another month.
$DATE(6,13) = $NEWMONTH
Prior to processing the logic, the fields contain the following values
$DATE = 21st December
$NEWMONTH = June
After processing the logic, the fields contain the following values:
$DATE = 21st June
$NEWMONTH = June
|
Example 3
|
The following logic routine appends six spaces to the value in $NAME, and then replaces characters 5 to 9 of the resulting string by the string in $SECONDNAME.
$NAME(5,9) = $SECONDNAME
Prior to processing the logic, the fields contain the following values:
$NAME = Tom
$SECONDNAME = Brown
After processing the logic, the fields contain the following values:
$NAME = Tom Brown
$SECONDNAME = Brown
|
Comment on this topic
Topic ID: 520068