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