Format function
English · Suomi
The format function formats a series of values into a string. The format function is found in the unit SysUtils. For an in-depth explanation see the sysutils.format on line documentation.
Syntax
Format is overloaded with two ways to call it:
function Format( const Fmt: String; const Args: array of Const) : String;
function Format( const Fmt: String; const Args: array of Const; const FormatSettings: TFormatSettings) : String;The Fmt String argument contains format specifiers or placeholders (e.g. %d) which correspond to and are replaced in the result string by values from the Args array. An array of const can hold a variable amount of values of different types, with the applicable types for the Format function being the variations of the Real, Integer, Pointer and String types. TFormatSettings is a record which holds information related to desired formatting of number, time, date and currency values.
The formatting rule for each given format specifier is:
% [ArgumentIndex:] ['-'] [width] [. precision] ArgumentType
| d | Decimal (integer) |
| e | Scientific |
| f | Fixed |
| g | General |
| m | Money |
| n | Number (floating) |
| p | Pointer |
| s | String |
| u | Unsigned decimal |
| x | Hexadecimal |
Integer formatting
| %d | Will print the integer as it is. |
| %8d | Will print the integer as it is. If the number of digits is less than 8, the output will be padded on the left. |
| %-8d | Will print the integer as it is. If the number of digits is less than 8, the output will be padded on the right. |
| %.8d | Will print the integer as it is. If the number of digits is less than 8, the output will be padded on the left with zeroes. |
String formatting
| %s | Will print the string as it is. |
| %8s | Will print the string as it is. If the string has less than 8 characters, the output will be space-padded on the left (right-justified). |
| %-8s | Will print the string as it is. If the string has less than 8 characters, the output will be space-padded on the right (left-justified). |
Example of usage
procedure TForm1.Button1Click(Sender: TObject);
var
title, title2,
underline,
line, row1, row2, row3,
fmt : string;
i : integer;
begin
fmt := '%-12s';
title := format(fmt,['Column 1']) + format(fmt,['Column 2']) ;
for i := 1 to 12 do underline := underline + '-';
underline := underline + underline ;
fmt := '%-12d';
line := format(fmt,[15]) + format(fmt,[8]) ;
fmt := '%12s';
title2 := format(fmt,['Column 1']) + format(fmt,['Column 2']) ;
fmt := '%12d';
row1 := format(fmt,[15]) + format(fmt,[8]) ;
row2 := format(fmt,[1005]) + format(fmt,[809]) ;
fmt := '%12.5d';
row3 := format(fmt,[1005]) + format(fmt,[809]) ;
Memo1.Lines.Add( title );
Memo1.Lines.Add( underline );
Memo1.Lines.Add( line );
Memo1.Lines.Add( '' );
Memo1.Lines.Add( title2 );
Memo1.Lines.Add( underline );
Memo1.Lines.Add( row1 );
Memo1.Lines.Add( row2 );
Memo1.Lines.Add( row3 );
end;The above statements will create a set of strings that look like:
Column 1 Column 2
------------------------
15 8
Column 1 Column 2
------------------------
15 8
1005 809
01005 00809
See also
- Format
- FloatToStrF
- FormatFloat
- IntToHex - Convert an integer into a hexadecimal string.
From the Free Pascal wiki, page "Format function", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
