変数の内容を整形して出力する (Format関数の利用) - Delphi

Delphiで変数の内容を整形して出力するにはFormat関数を用います。

書式

Format(形式文字列, 変数配列);

Format(形式文字列, 変数配列, フォーマット設定文字列(TFormatSettings));

形式文字列

意味
d10 進数
u符号なし 10 進数
e科学的(10 のべき乗)。引数は浮動小数点値
f固定。引数は浮動小数点
g一般。引数は浮動小数点
n数。引数は浮動小数点。、"-d,ddd,ddd.ddd..."の3桁ごとに区切り文字が含まれる。
m金額。 引数は、浮動小数点値。通貨金額を表す文字列に変換される。
pポインタ。 引数は、ポインタ値。16 進数のポインタ値を表す 8 文字の文字列に変換されます。
s文字列。引数はString値またはPChar値。
x16 進数です。 引数は、整数値。値は、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
iPentec all rights reserverd.