Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

$ZPOSITION

式の中で、指定されたフィールド幅に収まる文字数を返します。

Synopsis

$ZPOSITION(expression,field,pitch)

パラメータ

expression 文字列式。
field フィールド幅を指定する整数の式。
pitch オプション — 全角文字に使用するための pitch 値を指定する数値式。既定値は 2 です。他に、1、1.25、1.5 の値を取ることもできます。

概要

$ZPOSITION は、field 値内に収めることができる expression の文字数を返します。pitch 値は、全角文字に使用する幅を決定します。他の文字はすべて 1 (既定の幅) が割り当てられ、半角と認識されます。半角は 1 としてカウントされるため、field の値は field に収めることができる半角文字の数を示すことにもなります。

$ZPOSITION は、幅の累計が field 値と等しくなるか、expression 内にそれ以上文字が入らなくなるまで、expression の文字の幅を 1 ずつ追加します。したがって結果は、指定された field 値内に収まる文字数になります。これには、完全には収まらない小数部の文字も含まれます。

Note:

$ZPOSITION は、DSM-J モードで $ZP に省略されます。この省略形は Caché では使用できません。

以下の例では、変数 string に 2 つの半角文字と、それに続く全角文字 1 つが含まれていると想定しています。

   WRITE $ZPOSITION(string,3,1.5)

これは、2.6666666666666666667 を返します。

この例では、string の最初の 2 文字が指定されたフィールド幅に収まり、1 文字が残されます。string の 3 番目の文字は、1.5 の幅の全角文字 (pitch 引数で設定) ですが、2/3 (1/1.5) だけが収まりますが、全体は収まりきらないことになります。その結果、上記のような小数部分が返されます。

以下の例では、string には 1 つの全角文字と、それに続く 2 つの半角文字が含まれています。返される値は 2.5 です。

   WRITE $ZPOSITION(string,3,1.5)

この結果は、上記の例と値が異なります。この場合、最初の 2 文字が合わせて 2.5 の幅を持ち、指定されたフィールド幅の余りが 0.5 になります。この幅 0.5 には 3 番目の文字の半分 (.5/1) のみが収まります。

最後に、string が 3 つの半角文字を含む文字列の場合、3 つのすべての文字は完全に (ぴったりと) 収まり、結果は 3 になります。

   WRITE $ZPOSITION(string,3,1.5)
Note:

全角文字は、Caché プロセスにロードされているパターン照合テーブルを調べると判別できます。全角の属性を持つ文字はすべて、全角文字として認識されます。特別な ZFWCHARZ パットコードを使用して、この属性を確認することもできます (char?1ZFWCHARZ など)。全角の属性の詳細は、"Caché 専用のシステム/ツールおよびユーティリティ" の “各国言語サポートのシステム・クラス” のセクションの $X/$Y タブの説明を参照してください。

関連項目

FeedbackOpens in a new tab