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