VSI Pascal supplies predeclared routines that manipulate character strings.
1 – BIN
The BIN function returns a character-string value that is the binary equivalent of the specified parameter. The return value is compatible with all other string types. Syntax: BIN( x [[, length[[, digits]]]] ) The parameter 'x' is the expression to be converted. This parameter must have a size that is known at compile time; it cannot be VARYING OF CHAR, a conformant parameter, or a schema type. Two optional integer parameters specify the length of the resulting string and the minimum number of significant digits to be returned. If you specify a length that is too short to hold the converted value, the resulting string is truncated on the left. If you omit the optional parameters, the bit width of the converted parameter value determines the string length and the number of significant digits. By default, the number of significant digits is the minimum number of characters necessary to express all the bits of the converted parameter. This default length is one character more than the default number of digits, which causes a leading blank to be included in the resulting string when both parameters are omitted.
2 – DEC
The DEC function returns character-string value that is the decimal equivalent of the specified parameter. The return value is compatible with all other string types. Syntax: DEC( x [[, length[[, digits]]]] ) The parameter 'x' is the expression to be converted. The DEC function can take a parameter of any type except VARYING OF CHAR, conformant parameters, or schema types. The DEC function requires the size of 'x' to be less than or equal to the size of INTEGER64 (if supported), or less than or equal to the size of INTEGER32. Two optional integer parameters specify the length of the resulting string and the minimum number of significant digits to be returned. If you specify a length that is too short to hold the converted value, the resulting string is truncated on the left. If you do not specify values for the optional parameters, a default length and a default minimum number of significant digits is used. If the size of 'x' is greater than 32, the defaults are 20 characters for the length and 19 characters for the minimum number of digits. Otherwise, the defaults are 11 characters for the length and 10 characters for the minimum number of digits. Because the default length is 1 greater than the number of significant digits, positive numbers will be preceded by a blank and negative numbers will be preceded by a minus sign.
3 – EQ
The EQ function returns a Boolean value that specifies if the parameters are equal according to the ASCII values of the strings' characters. Syntax: EQ( str1,str2 ) The parameters 'str1' and 'str2' must be character-string expressions. If the EQ function detects unequal string lengths, it stops comparison and returns FALSE.
4 – FIND_MEMBER
The FIND_MEMBER function locates the first character in a string that is a member of a specified set and returns an integer value indicating the position of the character in the string; the function returns 0 if the characters in the string were not members of the set. Syntax: FIND_MEMBER( string, char-set ) The 'string' parameter is a string value, and the 'char-set' is a value of type SET OF CHAR.
5 – FIND_NONMEMBER
The FIND_NONMEMBER function locates the first character in a string that is not a member of a specified set and returns an integer value indicating the position of the character in the string; the function returns 0 if the characters in the string were all members of the set. Syntax: FIND_NONMEMBER( string, char-set ) The 'string' parameter is a string value, and the 'char-set' is a value of type SET OF CHAR.
6 – GE
The GE function returns a Boolean value that specifies if the first parameter is greater than or equal to the second parameter, according to the ASCII values of the strings' characters. Syntax: GE( str1,str2 ) The parameters 'str1' and 'str2' must be character-string expressions. VSI Pascal does not pad shorter strings with blanks.
7 – GT
The GT function returns a BOOLEAN value that specifies if the first parameter is greater than the second parameter, according to the ASCII values of the strings' characters. Syntax: GT( str1,str2 ) The parameters 'str1' and 'str2' must be character-string expressions. VSI Pascal does not pad shorter strings with blanks.
8 – HEX
The HEX function returns a character-string value that is the hexadecimal equivalent of the specified parameter. The return value is compatible with all other string types. Syntax: HEX( x [[, length[[, digits]]]] ) The parameter 'x' is the expression to be converted. This parameter must have a size that is known at compile time; it cannot be VARYING OF CHAR, a conformant parameter, or a schema type. Two optional integer parameters specify the length of the resulting string and the minimum number of significant digits to be returned. If you specify a length that is too short to hold the converted value, the resulting string is truncated on the left. If you do not specify values for the optional parameters, a default length and a default number of significant digits is used. By default, the number of significant digits is the minimum number of characters necessary to express all the bits of the converted parameter. This default length is one character more than the default number of digits, which causes a leading blank to be included in the resulting string when both parameters are omitted.
9 – INDEX
The INDEX function searches a string for a specified substring and returns an integer value that either indicates the location of the substring or the status of the search. Syntax: INDEX( string, substring ) INDEX requires two character-string expressions as parameters: a string to be searched and a substring to be found. The search ends as soon as the first occurrence of the substring is located. If the substring is found, INDEX returns the string component that contains the first letter of the substring. If the substring is not found, INDEX returns the value 0. If the substring is an empty string, INDEX returns the value 1. If the string to be searched is an empty string, INDEX returns the value 0 unless the substring is also empty; in which case, INDEX returns the value 1.
10 – LE
The LE function returns a Boolean value that specifies if the first parameter is less than or equal to the second parameter, according to the ASCII values of the strings' characters. Syntax: LE( str1,str2 ) The parameters 'str1' and 'str2' must be character-string expressions. VSI Pascal does not pad shorter strings with blanks.
11 – LENGTH
The LENGTH function returns an integer value that is the length of a specified string expression. Syntax: LENGTH( str ) The parameter 'str' must be a character-string expression.
12 – LT
This function returns a Boolean value that specifies if the first parameter is less than the second parameter, according to the ASCII values of the strings' characters. Syntax: LT( str1,str2 ) The parameters 'str1' and 'str2' must be character-string expressions. VSI Pascal does not pad shorter strings with blanks.
13 – NE
The NE function returns a Boolean value that specifies if the parameters are not equal according to the ASCII values of the strings' characters. Syntax: NE( str1,str2 ) The parameters 'str1' and 'str2' must be character-string expressions. VSI Pascal does not pad shorter strings with blanks.
14 – OCT
The OCT function returns character-string value that is the octal equivalent of the specified parameter. The return value is compatible with all other string types. Syntax: OCT( x [[, length[[, digits]]]] ) The parameter 'x' is the expression to be converted. This parameter must have a size that is known at compile time; it cannot be VARYING OF CHAR, a conformant parameter, or a schema type. Two optional integer parameters specify the length of the resulting string and the minimum number of significant digits to be returned. If you specify a length that is too short to hold the converted value, the resulting string is truncated on the left. By default, the number of significant digits is the minimum number of characters necessary to express all the bits of the converted parameter. This default length is one character more than the default number of digits, which causes a leading blank to be included in the resulting string when both parameters are omitted.
15 – PAD
The PAD function returns a character-string value, of the specified size, that contains padded fill characters. The return value is compatible with all other string types. Syntax: PAD( str,fill,size ) The parameter 'str' is a character-string value to be padded; the parameter fill is a value of type CHAR to be used as the fill character; and, the parameter 'size' is an integer value indicating the size of the final string. This string is composed of the original string followed by the fill character, which is repeated as many times as is necessary to extend the string to its specified size. The final size must be greater than or equal to the length of the string to be padded.
16 – READV
The READV procedure reads characters from a character-string expression and assigns them to parameters in the READV call. The behavior of READV is analogous to that of READLN; the character string is analogous to a one-line file. Syntax: READV( str, {variable-id[[ : radix-specifier ]]},... [[, ERROR := error-recovery ]]) The parameter 'str' is the string to be read. The variable-identifier is the variable to be assigned a value from 'str'. The parameter 'radix-specifier' can be BIN, OCT, or HEX. You can read a variable of any type by using a radix specifier except a type that contains a file component. The 'error-recovery' indicates the action to be taken in case of an error. An error occurs at run time if values have not been assigned to all the parameters listed in the READV procedure call before the end of the character string is reached.
17 – STATUSV
The STATUSV function returns an integer value that specifies the status of the last READV or WRITEV completed. It does not have any parameters. Note that if you have an asynchronous trap (AST) routine condition handler written in your program that uses READV and WRITEV, the call of STATUSV in your main program may not return the results you expected if an AST occurred between the READV/WRITEV and STATUS.
18 – SUBSTR
The SUBSTR function returns a substring (from a string specified as a parameter) that is of the specified starting point and length. The return value is compatible with all other string types. Syntax: SUBSTR( str,start [,length] ) The parameter 'str' is a character string value; the parameter 'start' is an integer value that indicates the starting position of the substring. The parameter 'length' is an integer value that indicates the length of the substring. If the 'length' argument is omitted, the length is computed to be the remainder of the string value beginning at the starting position. The 'length' argument cannot be omitted on OpenVMS VAX systems. For example, SUBSTR(string,start_index) is identical to SUBSTR(string,start_index,length(string)-string_index+1) When you use the SUBSTR function, the value of the starting position must be greater than 0, the value of the length must be greater than or equal to 0, and there must be enough characters following the starting position to construct a substring of the specified length.
19 – UDEC
The UDEC function returns a character-string value that is the unsigned decimal equivalent of the specified parameter. The return value is compatible with all other string types. Syntax: UDEC(x [[,length[[,digits]]]]) The parameter 'x' is the expression to be converted. The UDEC function can take a parameter of any type except VARYING OF CHAR, conformant parameters, or schema types. This function requires the size of 'x' to be less than or equal to the size of INTEGER64 (if supported) on your system. If your system does not support INTEGER64, then the UDEC function requires that 'x' be less than or equal to the size of INTEGER32. Two optional integer parameters specify the length of the resulting string and the minimum number of significant digits to be returned. If you specify a length that is too short to hold the converted value, the resulting string is truncated on the left. If you do not specify values for the optional parameters, a default length and a default minimum number of significant digits is used. If the size of 'x' is greater than 32, the defaults are 21 characters for the length and 20 characters for the minimum number of digits. Otherwise, the defaults are 11 characters for the length and 10 characters for the minimum number of digits.
20 – WRITEV
The WRITEV procedure writes characters to a character-string variable of type VARYING OF CHAR or discriminated STRING, by converting the values of the parameters in the procedure call to textual representations. The behavior of WRITEV is analogous to that of the WRITELN function; the character-string parameter is analogous to a one-line file. Syntax: WRITEV( str, parameter-list [[,ERROR := error-recovery]] ) The parameter 'str' cannot appear within the parameter-list; if you attempt to do this, unexpected results may occur. An error occurs if WRITEV reaches the maximum length of the character string before the values of all the parameters in the procedure call have been written into the string. The parameter 'error-recovery' indicates the action to be taken if an error occurs while the WRITEV procedure is executing.