Format Strings and Rules

From STX Wiki
Jump to navigation Jump to search

Format Strings and Rules

A number of STx commands (e.g. WRITE and FORMAT and the shell table CONFIG command) take a formatting string parameter.

Standard C String formatting

Wherever formatting is used, it is defined using a C-like format string. The following standard C-format tags can be used:

%s for strings
%d for integer values
%f, %g for float values (numbers)
%X, %x for unsigned hexadecimal integers in upper (X) and lower (x) case
%% replaced by a single % character

All variations of these tags allowed in C are allowed here (e.g.: %-10.10s, %3.0f, %05d, ...).

Formatting Extensions

An additional set of special format tags is also available:

%t replaced by 8 blanks
%T replaced by a tab character
%h to display time values in the format 'hh:mm:ss.ttt'
%n replaced by a linefeed (\n).

Time format variations: %h, %nh, %-nh, %n.h, %-n.h where the following apply:

- suppress output of leading zeros (hours and minutes only)
. show milliseconds (thousands)
n number of characters or 0 for automatic field width; if n is greater than the output string length, the output is right aligned

Note that the input for the time format is a value in seconds.

For each format tag except %t, %T and %%, an argument value must be present in the command line.

If one of the tags (- or .) is used a field width must be also included, use n=0 for automatic field width (no alignment).

A format string used in WRITE and FORMAT commands can contain more than one format tag (which need a value). Format strings used for table configuration, however, need exactly one format tag for the value stored in the table.

Format Examples

<code>FORMAT '%s%n%s' 'line 1' 'line 2'</code>
<code>// generates the output</code>
<code>line 1</code>
<code>line 2</code>