Home New Help Edit

Delphi Formatの使い方

http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00149.htm

15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」

[Q]
形式文字列を使うFormatは便利ですが、ヘルプの説明から形式文字列を作成 するのは骨が折れます。例示があると大変助かりますが。

[A]
 形式文字列を使うたびに、豊富な使用例があるとよいが、と思っていまし
た。SBORLAND および FDELPHI の過去ログから抜粋した使用例に、2・3例を
追加して、コンソール表示させてみたのが以下の例です。
 また、浮動小数点値を Format 形式にする、FormatFloat は過去ログにあ
った例示が少なかったため、ここに入れておきました。
[例]
program FormatStr;

{$APPTYPE CONSOLE}
uses
Classes,SysUtils;

var
st1,st2: string;
i,j,k: integer;
r: real;

begin
i:=10; j:=100; {コンソールに表示されたもの}
Writeln(Format('%d',[i])); {10}
Writeln(Format('%3d',[i])); { 10}
Writeln(Format('%.3d',[i])); {010}
Writeln(Format('%03d',[i])); { 10}
Writeln(Format('Edit%d',[i])); {Edit10}
Writeln(Format('\%3.3d.',[i])); {\010.}
Writeln(Format('%d%%',[i])); {10%}
Writeln(Format(':%d',[i])); {:10}
Writeln(Format('XY%.3d',[i])); {XY010}
Writeln(Format('%d,%d',[i,j])); {10,100}
Readln;

r:=i;
k:=2;
Writeln(Format('%f',[r])); {10.00}
Writeln(Format('%.0f',[r])); {10}
Writeln(Format('%4.2f',[r])); {10.00}
Writeln(Format('%2.3f ',[r])); {10.000}
Writeln(Format('%3.1f 倍',[r])); {10.0 倍}
Writeln(Format('%.7d %f',[7,1.234])); {0000007 1.23}

Writeln(Format('%n',[r])); {10.00}
Writeln(Format('%.0n',[r])); {10}
Writeln(Format('%*.*n',[i,k,r])); { 10.00}
Writeln(Format('%.0n',[r])); {10}
Writeln(Format('%10.0n',[r])); { 10}

Writeln(Format('%m',[r])); {\10}
Writeln(Format('%12m',[r])); { \10}

Writeln(Format('%X%x%X%x',[i,i+1,i+2,j])); {ABC64}
Writeln(Format('%x%x%x%x',[1,2,3,4])); {1234}
Writeln(Format('%.4x',[i])); {000A}
Writeln(Format('%4X',[i])); { A}
Writeln(Format('Icon Index is 0x%.4x',[i]));
{Icon Index is 0x000A}
Writeln(Format('$%02X',[i])); {'$ A'}

st1:='東京都'; st2:='出府愛二';
Writeln(Format('%13s ',[st1])); { 東京都}
Writeln(Format('%-10s%-10s%.5d',[st1,st2,i]));
{東京都 出府愛二 00010}
Readln;

r:=10.12345;
Writeln(Format('%f',[r])); {10.12}
Writeln(Format('%.0f',[r])); {10}
Writeln(Format('%4.2f',[r])); {10.12}
Writeln(Format('%2.3f ',[r])); {10.123}
Writeln(Format('%3.1f 倍',[r])); {10.1 倍}
Writeln(Format('%.7d %f',[7,1.234])); {0000007 1.23}
Writeln(Format('%n',[r])); {10.12}
Writeln(Format('%.0n',[r])); {10}
Writeln(Format('%*.*n',[i,k,r])); { 10.12}
Writeln(Format('%.0n',[r])); {10}
Writeln(Format('%10.0n',[r])); { 10}
Writeln(Format('%m',[r])); {\10}
Writeln(Format('%12m',[r])); { \10}
Readln;

Writeln(FormatFloat('0##',i)); {010}
Writeln(FormatFloat('#,##0',i)); {10}
Writeln(FormatFloat('0000',i)); {0010}
Writeln(FormatFloat('#,###',i)); {10}
Writeln(FormatFloat('###.0',i)); {10.0}

Writeln(FormatFloat('0##',r)); {010}
Writeln(FormatFloat('#,##0',r)); {10}
Writeln(FormatFloat('0000',r)); {0010}
Writeln(FormatFloat('#,###',r)); {10}
Writeln(FormatFloat('###.0',r)); {10.1}
Readln;
end.

Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会

Home New Help Edit
2018-06-12 11:56:58 32400