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.