VMS Help  —  Lexicals  F$FAO  Directives
    Specify an FAO directive using any one of the following formats:

    Format        Function

    !DD           One directive
    !n(DD)        A directive repeated a specified number of times
    !lengthDD     A directive that places its output in a field of a
                  specified length
    !n(lengthDD)  A directive that is repeated a specified number of
                  times and generates output fields of a specified
                  length

    The exclamation point (!)  indicates that the following character
    or characters are to be interpreted as an FAO directive. DD
    represents a 1- or 2-character uppercase code indicating
    the action that F$FAO is to perform. When specifying repeat
    counts, n is a decimal value specifying the number of times the
    directive is to be repeated. The length value is a decimal number
    that instructs F$FAO to generate an output field of "length"
    characters.

    Repeat counts and output lengths may also be specified by using
    a number sign (#)  in place of absolute numeric value. If you use
    a number sign, you must specify the numeric value as an integer
    expression in the corresponding place in the argument list.

    When a variable output field is specified with a repeat count,
    only one length parameter is required, because each output string
    has the specified length.

    Here is a summary of the FAO directives you can specify in a
    control string.

                                   NOTE

       Two types of directives that are supported by the $FAO
       system service are not supported by the DCL F$FAO lexical
       function. These types are:

       o  Quadword numeric directives, which are not supported
          in DCL because all DCL numeric values are stored and
          manipulated as longwords.

       o  String directives other than the !AS directive, which are
          not supported in DCL because all DCL strings are stored
          and manipulated by descriptor.

       For further information on the $FAO system service
       directive, see the VSI OpenVMS System Services Reference
       Manual.

              Argument
    Directive Type           Description

    Character string insertion:
    !AS       String         Inserts a character string as is.

    Zero-filled numeric conversion:
    !OB       Integer        Converts a byte to octal notation.
    !OW       Integer        Converts a word to octal notation.
    !OL       Integer        Converts a longword to octal notation.
    !XB       Integer        Converts a byte to hexadecimal notation.
    !XW       Integer        Converts a word to hexadecimal notation.
    !XL       Integer        Converts a longword to hexadecimal
                             notation.
    !ZB       Integer        Converts a byte to decimal notation.
    !ZW       Integer        Converts a word to decimal notation.
    !ZL       Integer        Converts a longword to decimal notation.

    Blank-filled numeric conversion:
    !UB       Integer        Converts a byte to decimal notation
                             without adjusting for negative numbers.
    !UW       Integer        Converts a word to decimal notation
                             without adjusting for negative numbers.
    !UL       Integer        Converts a longword to decimal notation
                             without adjusting for negative numbers.
    !SB       Integer        Converts a byte to decimal notation
                             with negative numbers converted
                             properly.
    !SW       Integer        Converts a word to decimal notation
                             with negative numbers converted
                             properly.
    !SL       Integer        Converts a longword to decimal notation
                             with negative numbers converted
                             properly.

    Special formatting:
    !/        None           Inserts a carriage return and a line
                             feed.
    !_        None           Inserts a tab.
    !^        None           Inserts a form feed.
    !!        None           Inserts an exclamation point (!).
    !%I       Integer        Converts a longword integer to a named
                             UIC in the format
                             [group-identifier,member-identifier].
    !%S       None           Inserts an "s" if the most recently
                             converted number is not 1. (Not
                             recommended for use with multilingual
                             products.)
    !%U       Integer        Converts a longword integer to a numeric
                             UIC in the format [g,m], where g is the
                             group number and m is the member number.
                             The directive inserts the brackets and
                             the comma.
    !n<...!>  None           Left-justifies and blank-fills all data
                             represented by the instructions . . . in
                             fields n characters wide.
    !n*c      None           Repeats the character represented
                             by c for n times.
    !n%C      String         Inserts a character string when the
                             most recently evaluated argument has
                             the value n. (Recommended for use with
                             multilingual products.)
    !%E       String         Inserts a character string when the
                             value of the most recently evaluated
                             argument does not match any preceding
                             !n%C directives. (Recommended for use
                             with multilingual products.)
    !%F       None           Marks the end of a plurals statement.
    !%T       Integer        Inserts the current time.
              equal to 0
    !%D       Integer        Inserts the current date/time.
              equal to 0

    Argument interpretation:
    !-        None           Reuses the last argument.
    !+        None           Skips the next argument.
Close Help