FMT 関数

構文

FMT (expression, format)
expression format

説明

FMT 関数またはフォーマット式は、出力のためのデータのフォーマットを設定します。 BASIC 式は、フォーマット式に続けて記述すれば出力のためのフォーマットを設定できます。

expression は、フォーマットされる数値またはストリング値として評価されます。

format は、フォーマット・コードのストリングとして評価される式です。 フォーマット式の構文は、次のとおりです。

[width] [fill] justification [edit] [mask]

フォーマット式は、出力フィールドの幅、背景または充てん文字の配置、行位置調整、編集の指定、フォーマット・マスキングを指定します。

expression が NULL 値として評価される場合、NULL が戻ります。format が NULL に評価されると、FMT 関数およびフォーマット処理は正しく実行されません。

width は、値を位置揃えする出力フィールドのサイズを指定する整数です。 mask を指定するときは、width を指定する必要はありません。 mask を指定しないときは width が必要です。

fill は、出力フィールドを埋める場合にパディング・エントリーに使用する文字を指定します。 fill は単独文字を指定します。 デフォルトの充てん文字はスペースです。 数字または文字の L、R、T、または Q を充てん文字に使用する場合は、それを一重引用符でくくる必要があります。

justification は次のいずれかの形式で必要です。

10 進表記の場合。

L
左揃え - フィールド長のブレーク
R
右揃え - フィールド長のブレーク
T
テキスト揃え - 左揃えおよびスペースのブレーク
U
左揃え - フィールド長のブレーク

指数表記の場合。

Q
右揃え - フィールド長のブレーク
QR
右揃え - フィールド長のブレーク
QL
左揃え

edit には次のいずれかを指定します。

n[m]
位置調整に L、R、または T を使用した場合、n は小数点の右側に表示する桁数で、m は、m から現行精度を引いたもので値をデスケール (除算) します。0 から 9 の数字が指定できます。nm を指定するために必要です。m を指定しなければ m は 0 とみなされます。 n を指定しなければ n = m = 0 とみなされます。 m を指定する場合には精度に対する考慮が必要です。 デフォルトの精度は 4 です。
n に 0 を指定すると、数値は最も近い整数に丸められます。 フォーマット設定した数値の小数桁が n に満たない場合は、出力で n 番目の小数桁までゼロがパディングされます。 フォーマット設定した数値の小数桁が n を超える場合は、数値は n 番目の小数桁に丸められます。
m に 0 を指定すると、値は現在の精度でデスケールされます (0- 現在の精度)。
nEm
Q、QR、または QL の位置揃えで使用すると、n は小数桁数で、m は指数を指定します。 各々が、0 から 9 までの数値です。
n.m
Q、QR、または QL の位置揃えで指定すると、n は小数点の左の桁数で、m は小数桁数です。 各々が、0 から 9 までの数値です。
$
値の先頭にドル記号を付加します。
F
値の先頭にフラン記号を付加します。
,
1000 毎にコンマを挿入します。
Z
先行ゼロを抑止します。 値が 0 なら空白ストリングを返します。Q のフォーマットで使用すると、末尾の端数のゼロと 0 の指数だけが抑制されます。
E
負の数値を不等号括弧 (< >) で囲みます。
C
負数に cr を付加します。
D
正数に db を付加します。
B
負数に db を付加します。
N
負数のマイナス符号を消去します。
M
負数にマイナス符号を追加します。
T
丸めの代わりに切り捨てを行います。
Y
NLS モードでは、値の先頭に円 / 元の文字 (Unicode 値の 00A5) を付加します。 MR または ML コードで Y を指定すると、ステータス・コードの 2 が返ります。 NLS が無効であるか Monetary カテゴリーが使用されていなければ、Y はバイト値の 0xA5 を先頭に付加します。
注: E、M、C、D、および N オプションは、プレフィックスまたはサフィックスの使用による通貨単位の数値表現を定義します。 NLS モードでは、これらのオプションは Numeric および Monetary の各カテゴリーに優先します。

mask では、フォーマット設定を行った出力フィールドで文字と数字を混在させることができます。 mask には、リテラルと以下の 3 つの形式のマスク文字の組み合わせを指定できます。

#n
データは、n 個の充てん文字のフィールドに表示されます。 デフォルトの充てん文字はブランクです。 これは、幅パラメーターの後にフォーマット・ストリングによる充てん文字の指定がない場合に使用されます。
%n
データは、n 個のゼロのフィールドに表示されます。
*n
データは、n 個のアスタリスクのフィールドに表示されます。

数字または特殊文字を文字として使用する場合は、円記号 (¥) でその文字をエスケープ処理する必要があります。

#、%、または * の記号の後ろに数字を続けると、背景充てん文字が n 回繰り返されます。 それ以外の文字の後ろに数字を続けると、その文字が出力データに n 回表示されます。

mask は、わかりやすいように括弧 ( ) でくくることができます。 mask に括弧を含める場合は、全体のマスクを別の括弧でくくる必要があります。 例:

((###) ###-####)

FMT 関数では、width または mask のどちらかを指定する必要があります。 同じ関数で両方を指定できます。 width を指定すると、ストリングは次の規則に従ってフォーマット設定されます。

string が幅の n より小さいときは、埋め込み文字でパディングされます。

string が幅の n より大きいときは、テキスト・マーク (CHAR(251)) が n 番目の文字ごとに挿入され、各フィールドは width の長さまで埋め込み文字がパディングされます。

STATUS 関数は、以下のように edit の結果を反映します。

:

0
編集コードは正常に実行されました。
1
ストリング式が無効です。
2
編集コードが無効です。

詳細については、STATUS 関数を参照してください。

REALITY フレーバー

REALITY フレーバー・アカウントでは、フォーマット式で変換コードを使用できます。

フォーマット式
フォーマット済みの値
Z=FMT("236986","R##-##-##")
Z=       23-69-86
X="555666898" X=FMT(X,"20*R2$,")
X=       *****$555,666,898.00
Y="DAVID" Y=FMT(Y,"10.L")
Y=       DAVID.....
V="24500" V=FMT(V,"10R2$Z")
V=        $24500.00
R=FMT(77777,"R#10")
R=            77777
B="0.12345678E1" B=FMT(B,"9*Q")
B=       *1.2346E0
PRINT 233779 "R"
233779
PRINT 233779 "R0"
233779
PRINT 233779 "R00"
2337790000
PRINT 233779 "R2"
233779.00
PRINT 233779 "R20"
2337790000.00
PRINT 233779 "R24"
233779.00
PRINT 233779 "R26"
2337.79
PRINT 2337.79 "R"
2337.79
PRINT 2337.79 "R0"
2338
PRINT 2337.79 "R00"
23377900
PRINT 2337.79 "R2"
2337.79
PRINT 2337.79 "R20"
23377900.00
PRINT 2337.79 "R24"
2337.79
PRINT 2337.79 "R26"
23.38