Difference between revisions of "Format function"
From Free Pascal wiki
Jump to navigationJump to searchJwdietrich (talk | contribs) (Typo) |
(Fix errors and ambiguities) |
||
Line 2: | Line 2: | ||
− | The format function formats a series of | + | The format function formats a series of values into a string. |
− | + | The formatting rule for each given argument is: | |
− | + | % [ArgumentIndex] ['-'] [width] [. precision] ArgumentType | |
− | |||
− | |||
− | The | ||
− | % [ | ||
== Argument type == | == Argument type == | ||
− | |||
* d = Decimal (integer) | * d = Decimal (integer) | ||
* e = Scientific | * e = Scientific | ||
Line 26: | Line 21: | ||
== Integer formatting == | == Integer formatting == | ||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 100: | Line 94: | ||
− | The above | + | The above statements will create a set of strings that look like: |
Column 1 Column 2 | Column 1 Column 2 |
Revision as of 13:36, 10 March 2015
Format
The format function formats a series of values into a string.
The formatting rule for each given argument is:
% [ArgumentIndex] ['-'] [width] [. precision] ArgumentType
Argument type
- 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 pint the integer as it is. If the number of digits is less than 8, the output will be padded on the left. |
%-8d | Will pint the integer as it is. If the number of digits is less than 8, the output will be padded on the right. |
%.8d | Will pint 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 pint the string as it is. If the string has less than 8 characters, the output will be padded on the left. |
%-8s | Will pint the string as it is. If the string has less than 8 characters, the output will be padded on the left. |
Example to use
...
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.