VMS Help  —  RTL Routines, STR$

1  –  STR$ADD

    The Add Two Decimal Strings routine adds two decimal strings of
    digits.

    Format

      STR$ADD  asign ,aexp ,adigits ,bsign ,bexp ,bdigits ,csign

               ,cexp ,cdigits

1.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

1.2  –  Arguments

 asign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the first operand. The asign argument is the address
    of an unsigned longword containing this sign. A value of 0 is
    considered positive; a value of 1 is considered negative.

 aexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which adigits is multiplied to get the absolute
    value of the first operand. The aexp argument is the address of a
    signed longword containing this exponent.

 adigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Text string of unsigned digits representing the absolute value of
    the first operand before aexp is applied. The adigits argument is
    the address of a descriptor pointing to this string. This string
    must be an unsigned decimal number.

 bsign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the second operand. The bsign argument is the address
    of an unsigned longword containing the second operand's sign.
    A value of 0 is considered positive; a value of 1 is considered
    negative.

 bexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which bdigits is multiplied to get the absolute
    value of the second operand. The bexp argument is the address of
    a signed longword containing the second operand's exponent.

 bdigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Text string of unsigned digits representing the absolute value of
    the second operand before bexp is applied. The bdigits argument
    is the address of a descriptor pointing to this string. This
    string must be an unsigned decimal number.

 csign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference

    Sign of the result. The csign argument is the address of an
    unsigned longword containing the result's sign. A value of 0
    is considered positive; a value of 1 is considered negative.

 cexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Power of 10 by which cdigits is multiplied to get the absolute
    value of the result. The cexp argument is the address of a signed
    longword containing this exponent.

 cdigits

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Text string of unsigned digits representing the absolute value
    of the result before cexp is applied. The cdigits argument is the
    address of a descriptor pointing to this string. This string is
    an unsigned decimal number.

2  –  STR$ANALYZE_SDESC

    The Analyze String Descriptor routine extracts the length and
    starting address of the data for a variety of string descriptor
    classes.

    Format

      STR$ANALYZE_SDESC  input-descriptor ,integer-length

                         ,data-address

2.1  –  Corresponding JSB Entry Point

      STR$ANALYZE_SDESC_R1

2.2  –  Returns

    OpenVMS usage:word_unsigned
    type:         word (unsigned)
    access:       write only
    mechanism:    by value

    Length of the data. The return value is the same value returned
    to the integer-length argument.

2.3  –  Arguments

 input-descriptor

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Input descriptor from which STR$ANALYZE_SDESC extracts the length
    of the data and the address at which the data starts. The input-
    descriptor argument is the address of a descriptor pointing to
    the input data.

 integer-length

    OpenVMS usage:word_unsigned
    type:         word (unsigned)
    access:       write only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Length of the data; this length is extracted from the descriptor
    by STR$ANALYZE_SDESC. The integer-length argument is the address
    of an unsigned word integer into which STR$ANALYZE_SDESC writes
    the data length.

 data-address

    OpenVMS usage:address
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Address of the data; this address is extracted from the
    descriptor by STR$ANALYZE_SDESC. The data-address argument is an
    unsigned longword into which STR$ANALYZE_SDESC writes the address
    of the data.

3  –  STR$ANALYZE_SDESC_64

    (Alpha only.) The Analyze String Descriptor routine extracts the
    length and starting address of the data for a variety of string
    descriptor classes.

    Format

      STR$ANALYZE_SDESC_64  input-descriptor ,integer-length

                            ,data-address [,descriptor-type]

3.1  –  Corresponding JSB Entry Point

      STR$ANALYZE_SDESC_R1

                            Refer to the STR$ANALYZE_SDESC routine

                            for information about the JSB entry

                            point, STR$ANALYZE_SDESC_R1. This JSB

                            entry point returns 64-bit results on

                            Alpha systems.

3.2  –  Returns

    OpenVMS usage:quadword_unsigned
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by value

    Length of the data. The return value is the same value returned
    to the integer-length argument.

3.3  –  Arguments

 input-descriptor

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Input descriptor from which STR$ANALYZE_SDESC_64 extracts the
    length of the data and the address at which the data starts. The
    input-descriptor argument is the address of a descriptor pointing
    to the input data. The input descriptor can be a longword
    (unsigned) or a quadword (unsigned).

 integer-length

    OpenVMS usage:quadword_unsigned
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Length of the data; this length is extracted from the descriptor
    by STR$ANALYZE_SDESC_64. The integer-length argument is the
    address of an unsigned quadword integer into which STR$ANALYZE_
    SDESC_64 writes the data length.

 data-address

    OpenVMS usage:address
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Address of the data; this address is extracted from the
    descriptor by STR$ANALYZE_SDESC_64. The data-address argument
    is an unsigned quadword into which STR$ANALYZE_SDESC_64 writes
    the address of the data.

 descriptor-type

    OpenVMS usage:word_unsigned
    type:         word (unsigned)
    access:       write only
    mechanism:    by reference

    Flag value indicating the type of input descriptor. The
    descriptor-type argument contains the address of an unsigned
    word integer to which STR$ANALYZE_SDESC_64 writes a zero (0) for
    a 32-bit input descriptor or a one (1) for a 64-bit descriptor.

    This argument is optional.

4  –  STR$APPEND

    The Append String routine appends a source string to the end of a
    destination string.

    Format

      STR$APPEND  destination-string ,source-string

4.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

4.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string to which STR$APPEND appends the source string.
    The destination-string argument is the address of a descriptor
    pointing to the destination string. This destination string
    must be dynamic or varying length. The maximum length of the
    destination string for a 32-bit descriptor is 2**16-1, or 65,535,
    bytes.

    On Alpha systems, the maximum length of the destination string
    for all 64-bit descriptor classes, except varying-length strings,
    is 2**64-1 bytes. The maximum length of a varying-length string
    is 2**16-1 for both 32-bit and 64-bit descriptors.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string that STR$APPEND appends to the end of the
    destination string. The source-string argument is the address
    of a descriptor pointing to this source string.

5  –  STR$CASE_BLIND_COMPARE

    The Compare Strings Without Regard to Case routine compares two
    input strings of any supported class and data type without regard
    to whether the alphabetic characters are uppercase or lowercase.

    Format

      STR$CASE_BLIND_COMPARE  first-source-string

                              ,second-source-string

5.1  –  Returns

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by value

    The values returned by STR$CASE_BLIND_COMPARE and the conditions
    to which they translate are as follows:

    Returned
    Value         Condition

                  first-source-string is less than second-source-
                  string.
    0             Both are the same (with blank fill for shorter
                  string).
    1             first-source-string is greater than second-source-
                  string.

5.2  –  Arguments

 first-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First string. The first-source-string argument is the address of
    a descriptor pointing to the first string.

 second-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second string. The second-source-string argument is the address
    of a descriptor pointing to the second string.

6  –  STR$COMPARE

    The Compare Two Strings routine compares the contents of two
    strings.

    Format

      STR$COMPARE  first-source-string ,second-source-string

6.1  –  Returns

    OpenVMS usage:longword_signed
    type:         longword integer (signed)
    access:       write only
    mechanism:    by value

    The values returned by STR$COMPARE and the conditions to which
    they translate are as follows:

    Returned
    Value         Condition

                  first-source-string is less than second-source-
                  string.
    0             first-source-string is equal to second-source-
                  string.
    1             first-source-string is greater than second-source-
                  string.

6.2  –  Arguments

 first-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First string. The first-source-string argument is the address of
    a descriptor pointing to the first string.

 second-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second string. The second-source-string argument is the address
    of a descriptor pointing to the second string.

7  –  STR$COMPARE_EQL

    The Compare Two Strings for Equality routine compares two strings
    to see if they have the same length and contents. Uppercase and
    lowercase characters are not considered equal.

    Format

      STR$COMPARE_EQL  first-source-string ,second-source-string

7.1  –  Returns

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

    The values returned by STR$COMPARE and the conditions to which
    they translate are as follows:

    Returned
    Value         Condition

    0             The length and the contents of first-source-string
                  are equal to the length and contents of second-
                  source-string.
    1             Either the length of first-source-string is not
                  equal to the length of second-source-string, or the
                  contents of first-source-string are not equal to
                  the contents of second-source-string, or both.

7.2  –  Arguments

 first-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First source string. The first-source-string argument is the
    address of a descriptor pointing to the first source string.

 second-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second source string. The second-source-string argument is the
    address of a descriptor pointing to the second source string.

8  –  STR$COMPARE_MULTI

    The Compare Two Strings for Equality Using Multinational
    Character Set routine compares two character strings for equality
    using the DEC Multinational Character Set.

    Format

      STR$COMPARE_MULTI  first-source-string ,second-source-string

                         [,flags-value] [,foreign-language]

8.1  –  Returns

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by value

    The values returned by STR$COMPARE_MULTI and the conditions to
    which they translate are as follows:

    Returned
    Value         Condition

                  first-source-string is less than second-source-
                  string.
    0             Both strings are the same; the shorter string is
                  blank filled.
    1             first-source-string is greater than second-source-
                  string.

8.2  –  Arguments

 first-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First string in the comparison. The first-source-string argument
    is the address of a descriptor pointing to the first string.

 second-source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second string in the comparison. The second-source-string
    argument is the address of a descriptor pointing to the second
    string.

 flags-value

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value

    A single flag bit. The flags-value argument is a signed longword
    integer that contains this flag bit. The flags-value argument
    indicates whether the comparison is to be case sensitive or case
    blind. The default value of flags-value is 0, indicating a case
    sensitive comparison. The following table lists the meaning of
    the bit values:

    Value Meaning

    0     Uppercase and lowercase characters are not equivalent. (The
          comparison is case sensitive.)
    1     Uppercase and lowercase characters are equivalent. (The
          comparison is case blind.)

 foreign-language

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value

    Indicator that determines the foreign language table to be
    used. The foreign-language argument is an unsigned longword that
    contains this foreign language table indicator. The default value
    of foreign-language is 1. The following table lists the value
    of the foreign-language argument associated with each language
    table:

    Value Language

    1     Multinational table
    2     Danish table
    3     Finnish/Swedish table
    4     German table
    5     Norwegian table
    6     Spanish table

9  –  STR$CONCAT

    The Concatenate Two or More Strings routine concatenates all
    specified source strings into a single destination string.

    Format

      STR$CONCAT  destination-string ,source-string

                  [,source-string...]

9.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

9.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$CONCAT concatenates all
    specified source strings. The destination-string argument is
    the address of a descriptor pointing to this destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First source string; STR$CONCAT requires at least one source
    string. The source-string argument is the address of a descriptor
    pointing to the first source string. The maximum number of source
    strings that STR$CONCAT allows is 254.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Additional source strings; STR$CONCAT requires at least one
    source string. The source-string argument is the address of a
    descriptor pointing to the additional source string. The maximum
    number of source strings that STR$CONCAT allows is 254.

10  –  STR$COPY_DX

    The Copy a Source String Passed by Descriptor to a Destination
    String routine copies a source string to a destination string.
    Both strings are passed by descriptor.

    Format

      STR$COPY_DX  destination-string ,source-string

10.1  –  Corresponding JSB Entry Point

      STR$COPY_DX_R8

10.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

10.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$COPY_DX writes the source
    string. Depending on the class of the destination string, the
    following actions occur:

    Descriptor
    Class          Action

    S, Z, SD, A,   Copy the source string. If needed, fill space or
    NCA            truncate on the right.
    D              If the area specified by the destination
                   descriptor is large enough to contain the source
                   string, copy the source string and set the new
                   length in the destination descriptor. If the area
                   specified is not large enough, return the previous
                   space allocation (if any) and then dynamically
                   allocate the amount of space needed. Copy the
                   source string and set the new length and address
                   in the destination descriptor.
    VS             Copy the source string to the destination string
                   up to the limit of the descriptor's MAXSTRLEN
                   field with no padding. Adjust the string's current
                   length (CURLEN) field to the actual number of
                   bytes copied.

    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string that STR$COPY_DX copies into the destination
    string; the descriptor class of the source string can be
    unspecified, fixed length, dynamic length, scalar decimal,
    array, noncontiguous array, or varying length. The source-string
    argument is the address of a descriptor pointing to this source
    string. (See the description of LIB$ANALYZE_SDESC for possible
    restrictions.)

11  –  STR$COPY_R

    The Copy a Source String Passed by Reference to a Destination
    String routine copies a source string passed by reference to a
    destination string passed by descriptor.

    Format

      STR$COPY_R  destination-string ,word-integer-source-length

                  ,source-string-address

11.1  –  Corresponding JSB Entry Point

      STR$COPY_R_R8

11.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

11.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$COPY_R copies the source
    string. The destination-string argument is the address of a
    descriptor pointing to the destination string.

    The class field determines the appropriate action.

    See the description of LIB$ANALYZE_SDESC for restrictions
    associated with specific descriptor classes.

 word-integer-source-length

    OpenVMS usage:word_unsigned
    type:         word (unsigned)
    access:       read only
    mechanism:    by reference

    Length of the source string. The word-integer-source-length
    argument is the address of an unsigned word containing the length
    of the source string.

 source-string-address

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by reference

    Source string that STR$COPY_R copies into the destination string.
    The source-string-address argument is the address of the source
    string.

12  –  STR$COPY_R_64

    (Alpha only.) The Copy a Source String Passed by Reference to
    a Destination String routine copies a source string passed by
    reference to a destination string passed by descriptor.

    Format

      STR$COPY_R_64  destination-string ,quad-integer-source-length

                     ,source-string-address

12.1  –  Corresponding JSB Entry Point

      STR$COPY_R_R8

12.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

12.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$COPY_R_64 copies the source
    string. The destination-string argument is the address of a
    descriptor pointing to the destination string.

    The class field determines the appropriate action.

    See the description of LIB$ANALYZE_SDESC for restrictions
    associated with specific descriptor classes.

 quad-integer-source-length

    OpenVMS usage:quadword_unsigned
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by reference

    Length of the source string. The quad-integer-source-length
    argument is the address of an unsigned quadword containing the
    length of the source string.

 source-string-address

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by reference

    Source string that STR$COPY_R_64 copies into the destination
    string. The source-string-address argument is the address of the
    source string.

13  –  STR$DIVIDE

    The Divide Two Decimal Strings routine divides two decimal
    strings.

    Format

      STR$DIVIDE  asign ,aexp ,adigits ,bsign ,bexp ,bdigits

                  ,total-digits ,round-truncate-indicator ,csign

                  ,cexp ,cdigits

13.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

13.2  –  Arguments

 asign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the first operand. The asign argument is the address of
    an unsigned longword containing the sign of the first operand.
    A value of 0 is considered positive; a value of 1 is considered
    negative.

 aexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which adigits is multiplied to get the absolute
    value of the first operand. The aexp argument is the address of
    the first operand's exponent.

 adigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First operand's numeric text string. The adigits argument is the
    address of a descriptor pointing to the first operand's numeric
    string. The string must be an unsigned decimal number.

 bsign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the second operand. The bsign argument is the address
    of an unsigned longword containing the second operand's string.
    A value of 0 is considered positive; a value of 1 is considered
    negative.

 bexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which bdigits is multiplied to get the absolute
    value of the second operand. The bexp argument is the address of
    the second operand's exponent.

 bdigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second operand's numeric text string. The bdigits argument is the
    address of a descriptor pointing to the second operand's number
    string. The string must be an unsigned decimal number.

 total-digits

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Number of digits to the right of the decimal point. The total-
    digits argument is the address of a signed longword containing
    the number of total digits. STR$DIVIDE uses this number to carry
    out the division.

 round-truncate-indicator

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Indicator of whether STR$DIVIDE is to round or truncate the
    result; a value of 0 means truncate; a value of 1 means round.
    The round-truncate-indicator argument is the address of a
    longword bit mask containing this indicator.

 csign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference

    Sign of the result. The csign argument is the address of an
    unsigned longword containing the sign of the result. A value
    of 0 is considered positive; a value of 1 is considered negative.

 cexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Power of 10 by which cdigits is multiplied to get the absolute
    value of the result. The cexp argument is the address of a signed
    longword containing the exponent.

 cdigits

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Result's numeric text string. The cdigits argument is the address
    of a descriptor pointing to the numeric string of the result.
    This string is an unsigned decimal number.

14  –  STR$DUPL_CHAR

    The Duplicate Character n Times routine generates a string
    containing n duplicates of the input character. If the
    destination string is an "empty" dynamic-length string
    descriptor, STR$DUPL_CHAR allocates and initializes the string.

    Format

      STR$DUPL_CHAR  destination-string [,repetition-count]

                     [,ASCII-character]

14.1  –  Corresponding JSB Entry Point

      STR$DUPL_CHAR_R8

14.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

14.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$DUPL_CHAR writes repetition-
    count copies of the input character. The destination-string
    argument is the address of a descriptor pointing to the
    destination string. The maximum length of the destination string
    for a 32-bit descriptor is 2**16-1, or 65,535, bytes.

    On Alpha systems, the maximum length of the destination string
    for all 64-bit descriptor classes, except varying strings, is
    2**64-1 bytes. The maximum length of a varying-length string is
    2**16-1 for both 32-bit and 64-bit descriptors.

 repetition-count

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Number of times ASCII-character is duplicated; this is an
    optional argument (if omitted, the default is 1). The repetition-
    count argument is the address of a signed longword containing the
    number.

 ASCII-character

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by reference

    ASCII character that STR$DUPL_CHAR writes repetition-count times
    into the destination string. The ASCII-character argument is the
    address of a character string containing this character. This is
    an optional argument; if omitted, the default is a space.

15  –  STR$ELEMENT

    The Extract Delimited Element Substring routine extracts an
    element from a string in which the elements are separated by a
    specified delimiter.

    Format

      STR$ELEMENT  destination-string ,element-number

                   ,delimiter-string ,source-string

15.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

15.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$ELEMENT copies the selected
    substring. The destination-string argument is the address of a
    descriptor pointing to the destination string.

 element-number

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Element number of the delimited element substring to be returned.
    The element-number argument is the address of a signed longword
    containing the desired element number. Zero is used to represent
    the first delimited element substring, one is used to represent
    the second, and so forth.

 delimiter-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Delimiter string used to separate element substrings. The
    delimiter-string argument is the address of a descriptor pointing
    to the delimiter string. The delimiter-string argument must be
    exactly one character long.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string from which STR$ELEMENT extracts the requested
    delimited substring. The source-string argument is the address
    of a descriptor pointing to the source string.

16  –  STR$FIND_FIRST_IN_SET

    The Find First Character in a Set of Characters routine searches
    a string, comparing each character to the characters in a
    specified set of characters. The string is searched character
    by character, from left to right. STR$FIND_FIRST_IN_SET returns
    the position of the first character in the string that matches
    any of the characters in the selected set of characters.

    Format

      STR$FIND_FIRST_IN_SET  source-string ,set-of-characters

16.1  –  Returns

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by value

    Position in source-string where the first match is found; zero if
    no match is found.

    On Alpha systems, if the relative position of the substring can
    exceed 2**32-1, assign the return value to a quadword to ensure
    that you retrieve the correct relative position.

16.2  –  Arguments

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    String that STR$FIND_FIRST_IN_SET compares to the set of
    characters, looking for the first match. The source-string
    argument is the address of a descriptor pointing to the character
    string.

 set-of-characters

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Set of characters that STR$FIND_FIRST_IN_SET is searching for
    in the string. The source-string argument is the address of a
    descriptor pointing to the set of characters.

17  –  STR$FIND_FIRST_NOT_IN_SET

    The Find First Character That Does Not Occur in Set routine
    searches a string, comparing each character to the characters in
    a specified set of characters. The string is searched character
    by character, from left to right. STR$FIND_FIRST_NOT_IN_SET
    returns the position of the first character in the string that
    does not match any of the characters in the selected set of
    characters.

    Format

      STR$FIND_FIRST_NOT_IN_SET  source-string ,set-of-characters

17.1  –  Returns

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by value

    Position in source-string where a nonmatch was found.

    On Alpha systems, if the relative position of the substring can
    exceed 2**32-1, assign the return value to a quadword to ensure
    that you retrieve the correct relative position.

    Returned
    Value         Condition

    0             Either all characters in source-string match some
                  characters in set-of-characters, or there were no
                  characters in set-of-characters.
    1             Either the first nonmatching character in source-
                  string was found in position 1, or there were no
                  characters in source-string.
    N             The first nonmatching character was found in
                  position N within source-string.

17.2  –  Arguments

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    String that STR$FIND_FIRST_NOT_IN_SET searches. The source-string
    argument is the address of a descriptor pointing to the string.

 set-of-characters

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    The set of characters that STR$FIND_FIRST_NOT_IN_SET compares
    to the string, looking for a nonmatch. The set-of-characters
    argument is the address of a descriptor pointing to this set of
    characters.

18  –  STR$FIND_FIRST_SUBSTRING

    The Find First Substring in Input String routine finds the first
    substring (in a provided list of substrings) occurring in a given
    string.

    Format

      STR$FIND_FIRST_SUBSTRING  source-string ,index ,substring-index

                                ,substring [,substring...]

18.1  –  Returns

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

    The values returned by STR$FIND_FIRST_SUBSTRING and the
    conditions to which they translate are as follows:

    Returned
    Value          Condition

    0              source-string did not contain any of the specified
                   substrings.
    1              STR$FIND_FIRST_SUBSTRING found at least one of the
                   specified substrings in source-string.

18.2  –  Arguments

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    String that STR$FIND_FIRST_SUBSTRING searches. The source-string
    argument is the address of a descriptor pointing to the string.

 index

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Earliest position within source-string at which STR$FIND_FIRST_
    SUBSTRING found a matching substring; zero if no matching
    substring was found. The index argument is the address of a
    signed longword containing this position.

 substring-index

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Ordinal number of the substring that matched (1 for the first, 2
    for the second, and so on), or zero if STR$FIND_FIRST_SUBSTRING
    found no substrings that matched. The substring-index argument is
    the address of a signed longword containing this ordinal number.

 substring

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Specified substring for which STR$FIND_FIRST_SUBSTRING searches
    in source-string. The substring argument is the address of a
    descriptor pointing to the first substring. You can specify
    multiple substrings to search for.

 substring

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Additional specified substring for which STR$FIND_FIRST_SUBSTRING
    searches in source-string. The substring argument is the address
    of a descriptor pointing to the substring. You can specify
    multiple substrings to search for.

19  –  STR$FREE1_DX

    The Free One Dynamic String routine deallocates one dynamic
    string.

    Format

      STR$FREE1_DX  string-descriptor

19.1  –  Corresponding JSB Entry Point

      STR$FREE1_DX_R4

19.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

19.3  –  Argument

 string-descriptor

    OpenVMS usage:char_string
    type:         character string
    access:       modify
    mechanism:    by descriptor

    Dynamic string descriptor of the dynamic string that STR$FREE1_
    DX deallocates. The string-descriptor argument is the address
    of a descriptor pointing to the string to be deallocated. The
    descriptor's CLASS field is checked.

20  –  STR$GET1_DX

    The Allocate One Dynamic String routine allocates a specified
    number of bytes of virtual memory to a specified dynamic string
    descriptor.

    Format

      STR$GET1_DX  word-integer-length ,character-string

20.1  –  Corresponding JSB Entry Point

      STR$GET1_DX_R4

20.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

20.3  –  Arguments

 word-integer-length

    OpenVMS usage:word_unsigned
    type:         word (unsigned)
    access:       read only
    mechanism:    by reference

    Number of bytes that STR$GET1_DX allocates. The word-integer-
    length argument is the address of an unsigned word containing
    this number.

 character-string

    OpenVMS usage:char_string
    type:         character string
    access:       modify
    mechanism:    by descriptor

    Dynamic string descriptor to which STR$GET1_DX allocates the
    area. The character-string argument is the address of the
    descriptor. The descriptor's CLASS field is checked.

21  –  STR$GET1_DX_64

    (Alpha only.) The Allocate One Dynamic String routine allocates
    a specified number of bytes of virtual memory to a specified
    dynamic string descriptor.

    Format

      STR$GET1_DX_64  quad-integer-length ,character-string

21.1  –  Corresponding JSB Entry Point

      STR$GET1_DX_R4

21.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

21.3  –  Arguments

 quad-integer-length

    OpenVMS usage:quadword_unsigned
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by reference

    Number of bytes that STR$GET1_DX_64 allocates. The quad-integer-
    length argument is the address of an unsigned quadword containing
    this number.

 character-string

    OpenVMS usage:char_string
    type:         character string
    access:       modify
    mechanism:    by descriptor

    Dynamic string descriptor to which STR$GET1_DX_64 allocates
    the area. The character-string argument is the address of the
    descriptor. The descriptor's CLASS field is checked.

22  –  STR$LEFT

    The Extract a Substring of a String routine copies a substring
    beginning at the first character of a source string into a
    destination string.

    Format

      STR$LEFT  destination-string ,source-string ,end-position

22.1  –  Corresponding JSB Entry Point

      STR$LEFT_R8

22.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

22.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$LEFT copies the substring.
    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string from which STR$LEFT extracts the substring that it
    copies into the destination string. The source-string argument is
    the address of a descriptor pointing to the source string.

 end-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Relative position in the source string at which the substring
    ends. The end-position argument is the address of a signed
    longword containing the ending position.

    STR$LEFT copies all characters in the source string from position
    1 (the leftmost position) to the position number specified in
    this end-position argument.

23  –  STR$LEN_EXTR

    The Extract a Substring of a String routine copies a substring of
    a source string into a destination string.

    Format

      STR$LEN_EXTR  destination-string ,source-string ,start-position

                    ,longword-integer-length

23.1  –  Corresponding JSB Entry Point

      STR$LEN_EXTR_R8

23.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

23.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$LEN_EXTR copies the substring.
    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string from which STR$LEN_EXTR extracts the substring that
    it copies into the destination string. The source-string argument
    is the address of a descriptor pointing to the source string.

 start-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Relative position in the source string at which STR$LEN_EXTR
    begins copying the substring. The start-position argument is the
    address of a signed longword containing the starting position.

 longword-integer-length

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Number of characters in the substring that STR$LEN_EXTR copies
    to the destination string. The longword-integer-length argument
    is the address of a signed longword containing the length of the
    substring.

24  –  STR$MATCH_WILD

    The Match Wildcard Specification routine compares a pattern
    string that includes wildcard characters with a candidate string.

    Format

      STR$MATCH_WILD  candidate-string ,pattern-string

24.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

    Returns a condition value of STR$_MATCH if the strings match and
    STR$_NOMATCH if they do not match.

24.2  –  Arguments

 candidate-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    String that is compared to the pattern string. The candidate-
    string argument is the address of a descriptor pointing to the
    candidate string.

 pattern-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    String containing wildcard characters. The pattern-string
    argument is the address of a descriptor pointing to the pattern
    string. The wildcards in the pattern string are translated when
    STR$MATCH_WILD searches the candidate string to determine if it
    matches the pattern string.

25  –  STR$MUL

    The Multiply Two Decimal Strings routine multiplies two decimal
    strings.

    Format

      STR$MUL  asign ,aexp ,adigits ,bsign ,bexp ,bdigits ,csign

               ,cexp ,cdigits

25.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

25.2  –  Arguments

 asign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the first operand. The asign argument is the address of
    an unsigned longword containing the first operand's sign. A value
    of 0 is considered positive; a value of 1 is considered negative.

 aexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which adigits is multiplied to get the absolute
    value of the first operand. The aexp argument is the address of a
    signed longword containing this exponent.

 adigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First operand's numeric text string. The adigits argument is the
    address of a descriptor pointing to the numeric string of the
    first operand. The string must be an unsigned decimal number.

 bsign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the second operand. The bsign argument is the address of
    an unsigned longword containing the sign of the second operand.
    A value of 0 is considered positive; a value of 1 is considered
    negative.

 bexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which bdigits is multiplied to get the absolute
    value of the second operand. The bexp argument is the address of
    a signed longword containing this exponent.

 bdigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second operand's numeric text string. The bdigits argument is the
    address of a descriptor pointing to the second operand's numeric
    string. The string must be an unsigned decimal number.

 csign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference

    Sign of the result. The csign argument is the address of an
    unsigned longword containing the sign of the result. A value
    of 0 is considered positive; a value of 1 is considered negative.

 cexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Power of 10 by which cdigits is multiplied to get the absolute
    value of the result. The cexp argument is the address of a signed
    longword containing this exponent.

 cdigits

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Result's numeric text string. The cdigits argument is the address
    of a descriptor pointing to the numeric string of the result. The
    string is an unsigned decimal number.

26  –  STR$POSITION

    The Return Relative Position of Substring routine searches for
    the first occurrence of a single substring within a source
    string. If STR$POSITION finds the substring, it returns the
    relative position of that substring. If the substring is not
    found, STR$POSITION returns a zero.

    Format

      STR$POSITION  source-string ,substring [,start-position]

26.1  –  Corresponding JSB Entry Point

      STR$POSITION_R6

26.2  –  Returns

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

    Relative position of the first character of the substring. Zero
    is the value returned if STR$POSITION did not find the substring.

    On Alpha systems, if the relative position of the substring can
    exceed 2**32-1, assign the return value to a quadword to ensure
    that you retrieve the correct relative position.

26.3  –  Arguments

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string within which STR$POSITION searches for the
    substring. The source-string argument is the address of a
    descriptor pointing to the source string.

 substring

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Substring for which STR$POSITION searches. The substring argument
    is the address of a descriptor pointing to the substring.

 start-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Relative position in the source string at which STR$POSITION
    begins the search. The start-position argument is the address of
    a signed longword containing the starting position. Although this
    is an optional argument, it is required if you are using the JSB
    entry point.

    If start-position is not supplied, STR$POSITION starts the search
    at the first character position of source-string.

27  –  STR$POS_EXTR

    The Extract a Substring of a String routine copies a substring of
    a source string into a destination string.

    Format

      STR$POS_EXTR  destination-string ,source-string ,start-position

                    ,end-position

27.1  –  Corresponding JSB Entry Point

      STR$POS_EXTR_R8

27.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

27.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$POS_EXTR copies the substring.
    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string from which STR$POS_EXTR extracts the substring that
    it copies into the destination string. The source-string argument
    is the address of a descriptor pointing to the source string.

 start-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Relative position in the source string at which STR$POS_EXTR
    begins copying the substring. The start-position argument is the
    address of a signed longword containing the starting position.

 end-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Relative position in the source string at which STR$POS_EXTR
    stops copying the substring. The end-position argument is the
    address of a signed longword containing the ending position.

28  –  STR$PREFIX

    The Prefix a String routine inserts a source string at the
    beginning of a destination string. The destination string must
    be dynamic or varying length.

    Format

      STR$PREFIX  destination-string ,source-string

28.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

28.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string (dynamic or varying length). STR$PREFIX copies
    the source string into the beginning of this destination string.
    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string that STR$PREFIX copies into the beginning of the
    destination string. The source-string argument is the address of
    a descriptor pointing to the source string.

29  –  STR$RECIP

    The Reciprocal of a Decimal String routine takes the reciprocal
    of the first decimal string to the precision limit specified by
    the second decimal string and returns the result as a decimal
    string.

    Format

      STR$RECIP  asign ,aexp ,adigits ,bsign ,bexp ,bdigits ,csign

                 ,cexp ,cdigits

29.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

29.2  –  Arguments

 asign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the first operand. The asign argument is the address of
    an unsigned longword containing the first operand's sign. A value
    of 0 is considered positive; a value of 1 is considered negative.

 aexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which adigits is multiplied to get the absolute
    value of the first operand. The aexp argument is the address of a
    signed longword containing this exponent.

 adigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    First operand's numeric text string. The adigits argument is the
    address of a descriptor pointing to the first operand's numeric
    string. The string must be an unsigned decimal number.

 bsign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the second operand. The bsign argument is the address of
    an unsigned longword containing the sign of the second operand.
    A value of 0 is considered positive; a value of 1 is considered
    negative.

 bexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which bdigits is multiplied to get the absolute
    value of the second operand. The bexp argument is the address of
    a signed longword containing this exponent.

 bdigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Second operand's numeric text string. The bdigits argument is the
    address of a descriptor pointing to the second operand's numeric
    string. The string must be an unsigned decimal number.

 csign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference

    Sign of the result. The csign argument is the address of an
    unsigned longword containing the result's sign. A value of 0
    is considered positive; a value of 1 is considered negative.

 cexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Power of 10 by which cdigits is multiplied to get the absolute
    value of the result. The cexp argument is the address of a signed
    longword containing this exponent.

 cdigits

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Result's numeric text string. The cdigits argument is the address
    of a descriptor pointing to the result's numeric string. The
    string is an unsigned decimal number.

30  –  STR$REPLACE

    The Replace a Substring routine copies a source string to a
    destination string, replacing part of the string with another
    string. The substring to be replaced is specified by its starting
    and ending positions.

    Format

      STR$REPLACE  destination-string ,source-string ,start-position

                   ,end-position ,replacement-string

30.1  –  Corresponding JSB Entry Point

      STR$REPLACE_R8

30.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

30.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$REPLACE writes the new string
    created when it replaces the substring. The destination-
    string argument is the address of a descriptor pointing to the
    destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string. The source-string argument is the address of a
    descriptor pointing to the source string.

 start-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Position in the source string at which the substring that
    STR$REPLACE replaces begins. The start-position argument is the
    address of a signed longword containing the starting position.
    The position is relative to the start of the source string.

 end-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Position in the source string at which the substring that
    STR$REPLACE replaces ends. The end-position argument is the
    address of a signed longword containing the ending position.
    The position is relative to the start of the source string.

 replacement-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Replacement string with which STR$REPLACE replaces the substring.
    The replacement-string argument is the address of a descriptor
    pointing to this replacement string. The value of replacement-
    string must be equal to end-position minus start-position.

31  –  STR$RIGHT

    The Extract a Substring of a String routine copies a substring
    ending at the last character of a source string into a
    destination string.

    Format

      STR$RIGHT  destination-string ,source-string ,start-position

31.1  –  Corresponding JSB Entry Point

      STR$RIGHT_R8

31.2  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

31.3  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$RIGHT copies the substring.
    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string from which STR$RIGHT extracts the substring that it
    copies into the destination string. The source-string argument is
    the address of a descriptor pointing to the source string.

 start-position

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference for CALL entry point, by value for JSB
                  entry point

    Relative position in the source string at which the substring
    that STR$RIGHT copies starts. The start-position argument is the
    address of a signed longword containing the starting position.

32  –  STR$ROUND

    The Round or Truncate a Decimal String routine rounds or
    truncates a decimal string to a specified number of significant
    digits and places the result in another decimal string.

    Format

      STR$ROUND  places ,flags ,asign ,aexp ,adigits ,csign ,cexp

                 ,cdigits

32.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

32.2  –  Arguments

 places

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Maximum number of decimal digits that STR$ROUND retains in the
    result. The places argument is the address of a signed longword
    containing the number of decimal digits.

 flags

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Function flag. A value of 0 indicates that the decimal string is
    rounded; a value of 1 indicates that it is truncated. The flags
    argument is the address of an unsigned longword containing this
    function flag.

 asign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Sign of the decimal input string to be rounded or truncated.
    The asign argument is the address of an unsigned longword string
    containing this sign. A value of 0 is considered positive; a
    value of 1 is considered negative.

 aexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       read only
    mechanism:    by reference

    Power of 10 by which adigits is multiplied to get the absolute
    value of the decimal input string. The aexp argument is the
    address of a signed longword containing this exponent.

 adigits

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Decimal input string. This is the string of digits to which asign
    and aexp are applied. The adigits argument is the address of a
    descriptor pointing to this numeric string. The string must be an
    unsigned decimal number.

 csign

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference

    Sign of the result. The csign argument is the address of an
    unsigned longword containing the result's sign. A value of 0
    is considered positive; a value of 1 is considered negative.

 cexp

    OpenVMS usage:longword_signed
    type:         longword (signed)
    access:       write only
    mechanism:    by reference

    Power of 10 by which cdigits is multiplied to get the absolute
    value of the result. The cexp argument is the address of a signed
    longword containing this exponent.

 cdigits

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Result's numeric text string. The cdigits argument is the address
    of a descriptor pointing to this numeric string. The string is an
    unsigned decimal number.

33  –  STR$TRANSLATE

    The Translate Matched Characters routine successively compares
    each character in a source string to all characters in a match
    string. If a source character has a match, the destination
    character is taken from the translate string. Otherwise,
    STR$TRANSLATE moves the source character to the destination
    string.

    Format

      STR$TRANSLATE  destination-string ,source-string

                     ,translation-string ,match-string

33.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

33.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string. The destination-string argument is the
    address of a descriptor pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string. The source-string argument is the address of a
    descriptor pointing to the source string.

 translation-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Translate string. The translation-string argument is the address
    of a descriptor pointing to the translate string.

 match-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Match string. The match-string argument is the address of a
    descriptor pointing to the match string.

34  –  STR$TRIM

    The Trim Trailing Blanks and Tabs routine copies a source string
    to a destination string and deletes the trailing blank and tab
    characters.

    Format

      STR$TRIM  destination-string ,source-string [,resultant-length]

34.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

34.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$TRIM copies the trimmed string.
    The destination-string argument is the address of a descriptor
    pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string which STR$TRIM trims and then copies into the
    destination string. The source-string argument is the address
    of a descriptor pointing to the source string.

 resultant-length

    OpenVMS usage:word_unsigned
    type:         word (unsigned)
    access:       write only
    mechanism:    by reference

    Number of bytes that STR$TRIM writes into destination-string,
    not counting padding in the case of a fixed-length string. The
    resultant-length argument is the address of an unsigned word
    into which STR$TRIM writes the length of the output string.
    If the input string is truncated to the size specified in the
    destination-string  description, resultant-length is set to
    this size. Therefore, resultant-length can always be used by
    the calling program to access a valid substring of destination-
    string.

35  –  STR$UPCASE

    The Convert String to All Uppercase Characters routine converts a
    source string to uppercase.

    Format

      STR$UPCASE  destination-string ,source-string

35.1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

35.2  –  Arguments

 destination-string

    OpenVMS usage:char_string
    type:         character string
    access:       write only
    mechanism:    by descriptor

    Destination string into which STR$UPCASE writes the string it has
    converted to uppercase. The destination-string argument is the
    address of a descriptor pointing to the destination string.

 source-string

    OpenVMS usage:char_string
    type:         character string
    access:       read only
    mechanism:    by descriptor

    Source string that STR$UPCASE converts to uppercase. The source-
    string argument is the address of a descriptor pointing to the
    source string.
Close Help