Delphiで変数の内容を整形して出力するにはFormat関数を用います。
書式
Format(形式文字列, 変数配列);
Format(形式文字列, 変数配列, フォーマット設定文字列(TFormatSettings));
形式文字列
値 | 意味 |
d | 10 進数 |
u | 符号なし 10 進数 |
e | 科学的(10 のべき乗)。引数は浮動小数点値 |
f | 固定。引数は浮動小数点 |
g | 一般。引数は浮動小数点 |
n | 数。引数は浮動小数点。、"-d,ddd,ddd.ddd..."の3桁ごとに区切り文字が含まれる。 |
m | 金額。 引数は、浮動小数点値。通貨金額を表す文字列に変換される。 |
p | ポインタ。 引数は、ポインタ値。16 進数のポインタ値を表す 8 文字の文字列に変換されます。 |
s | 文字列。引数はString値またはPChar値。 |
x | 16 進数です。 引数は、整数値。値は、16 進数の文字列に変換されます。 |
プレースメントは形式指定文字列の手前に"%"を付けて記述します。
str = Format('%d %s',[a,b]);
と記述すると、"%d"部分に変数"a"の値が、"%s"の部分に変数"b"の値が埋め込まれたstring型の文字列を返します。
インデックスを指定する場合
インデックス番号を指定する場合は"%"以降にインデックス番号と":"を追加します。
例
str = Format('%d %d %0:d %1:d',[a,b]);
と記述すると、"(変数aの値) (変数bの値) (変数aの値) (変数bの値)" の文字列を返します。
エスケープ文字
"%"文字を表示する場合は"%%"と記述します。
TFormatSettings
曜日の名称や月の名称を設定する構造体です。
TFormatSettings = record
CurrencyFormat: Byte;
NegCurrFormat: Byte;
ThousandSeparator: Char;
DecimalSeparator: Char;
CurrencyDecimals: Byte;
DateSeparator: Char;
TimeSeparator: Char;
ListSeparator: Char;
CurrencyString: string;
ShortDateFormat: string;
LongDateFormat: string;
TimeAMString: string;
TimePMString: string;
ShortTimeFormat: string;
LongTimeFormat: string;
ShortMonthNames: array[1..12] of string;
LongMonthNames: array[1..12] of string;
ShortDayNames: array[1..7] of string;
LongDayNames: array[1..7] of string;
TwoDigitYearCenturyWindow: Word;
end;
コードサンプル
変数を整形して文字列を取得し、それをMemo1に表示するコードサンプルです。DelphiのFormat関数は第二引数が配列のため、変数を[]で囲みます。
コード
procedure TForm1.Button1Click(Sender: TObject);
var
text:String;
a,b,c:integer;
d:string;
begin
a:=10;
b:=5;
c:=3;
d:='Penguin';
text := Format('%d,%d 値: %s %d',[a,b,d,c]);
Memo1.Lines.Add(text);
end;
実行結果 (Memo1)
10,5 値: Penguin 3
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-07
作成日: 2011-02-22