System.MaskUtils.FormatMaskText
Delphi
function FormatMaskText(const EditMask: string; const Value: string ): string;
C++
extern DELPHI_PACKAGE System::UnicodeString __fastcall FormatMaskText(const System::UnicodeString EditMask, const System::UnicodeString Value);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.MaskUtils.pas System.MaskUtils.hpp |
System.MaskUtils | System.MaskUtils |
説明
編集マスクを使用して整形済みの文字列を返します。
FormatMaskText を呼び出すと、EditMask パラメータで指定されたマスクを、Value パラメータで指定されたテキスト文字列に適用することができます。編集マスクの文字列は、セミコロンで区切られた 3 つのフィールドで構成されます。マスクの差違shの部分は、マスク自身です。2 番目の部分は、マスクのリテラル文字列が、Value パラメータ内の文字列とマッチングするためのものか、それとも Value 文字列に挿入されるためのものかを指定します。マスクの 3 番目の部分は、マスクで欠けている文字を表すために使用される文字です。
これは、マスクの最初のフィールドで使用される特殊文字です。
文字 | マスクの意味 |
---|---|
! | マスクに文字 ! がある場合、返される文字列において、任意の文字列が先頭の空白として表されます。マスクに文字 ! がない場合、返される文字列において、任意の文字列が末尾の空白として表されます。 |
> | マスクに文字 > がある場合、それ以降のすべての文字列が、マスクの最後までが、もしくは文字 < に遭遇するところまで大文字になります。 |
< | マスクに文字 > がある場合、それ以降のすべての文字列が、マスクの最後までが、もしくは文字 < に遭遇するところまで小文字になります。 |
<> | マスクにこの 2 文字が一緒にある場合、大文字小文字は区別されず、データは、Value パラメータにある通りに整形されます。 |
\ | \ に続く文字は、リテラル文字です。この文字を使用すると、マスクの特殊文字をリテラル文字として使用できます。 |
L | 文字 L の位置には、英字を 1 字だけ入れます。A-Z、a-z のいずれかとなります。 |
l | 文字 l の位置には、英字を 1 字だけ入れられますが、必須ではありません。 |
A | 文字 A の位置には、英数字を 1 字だけ入れます。A-Z、a-z、0-9 のいずれかとなります。 |
a | 文字 a の位置には、英数字を 1 字だけ入れられますが、必須ではありません。 |
C | 文字 C の位置には、任意の文字を 1 字だけ入れます。 |
c | 文字 c の位置には、任意の文字を 1 字だけ入れられますが、必須ではありません。 |
0 | 文字 0 の位置には、数字を 1 字だけ入れます。 |
9 | 文字 9 の位置には、数字を 1 字だけ入れられますが、必須ではありません。 |
# | 文字 # の位置には、数字または記号の + または - を 1 字だけ入れられますが、必須ではありません。 |
:(コロン) | 文字 : は、時間の時分秒を区切るのに使用されます。 コントロール パネルの地域と言語の設定で、時、分、秒の区切り文字が異なる場合、返される文字列ではその区切り文字が使用されます。 |
/ | 文字 / は、日付の年月日を区切るのに使用されます。コントロール パネルの地域と言語の設定で、年、月、日の区切り文字が異なる場合、返される文字列ではその区切り文字が使用されます。 |
;(セミコロン) | 文字 ; は、マスクを 3 つのフィールドに区切るのに使用されます。 |
_ | 文字 _ は、返される文字列に、自動的にスペースを挿入します。 |
上記の表示にない文字は、マスクの最初の部分でリテラル文字として使用できます。リテラル文字は、マスク第 2 フィールドが 0 の場合に自動的に挿入され、このフィールドがそれ以外の値の場合には、Value パラメータの文字とマッチングされます。マスクの特殊文字も、前にバックスラッシュ文字(\)をつけることにより、リテラル文字として使用できます。
マスクの第 2 フィールドは単一文字で、マスクのリテラル文字が Value パラメータに挿入されるかどうかを示します。たとえば、市外局番からの電話番号をマスクで表すと、次のような文字列になります:
(000)_000-0000;0;*
第2 フィールドの 0 は、Value パラメータが 10 桁の電話番号で構成されており、最終的に整形された文字列である 14 文字ではないことを示しています。
第2 フィールドの 0 は、リテラル文字が Value 文字列に挿入されることを示しており、他の文字の場合は、その中に含まれていることを示しています。リテラルが含まれるかどうかを示すこの文字は、MaskUtils ユニット内で定義されている MaskNoSave 定数を変更することで、変えることができます。
マスクの第 3 フィールドは、返される文字列で空白(Value で表示されない文字群)を表す文字です。デフォルトでは、リテラルのスペースを表す文字と同じです。この 2 つの文字は、返される文字列では同じにように表示されます。
メモ: マルチバイト文字セットを使用している場合、マスクの各特殊文字は、1 バイト分を表します。L、l、A、a、C、c の各指定子を使用して、2 バイト文字を指定する場合、マスク文字も同様に 2 倍にする必要があります。たとえば、LL は、2 つの 1 バイト英字か、1 つの 2 バイト文字を表します。1 バイトのリテラル文字だけが、サポートされています。