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?

$Y

カーソルの現在の垂直位置を含みます。

Synopsis

$Y

概要

$Y は、カーソルの現在の垂直位置を含みます。デバイスに文字が書き込まれると、Caché は $Y を更新して、垂直カーソル位置を反映します。

出力される各改行 (新規行) 文字 (ASCII 10) は、$Y を 1 つインクリメントします。改ページ文字 (ASCII 12) は、$Y を 0 にリセットします。

$Y は、16 ビットの符号なし整数です。$Y の値が 65536 に達すると、0 に戻ります。つまり、$Y が 65535 の場合、次の出力文字によって 0 にリセットされます。

SET コマンドを使用して、$X$Y に値を与えることができます。例えば、$X 値と $Y 値を更新せずに、物理的カーソル位置を変更する特殊なエスケープ・シーケンスを使用することができます。この場合、エスケープ・シーケンスを使用した後に、SET を使用して正しい値を $X$Y に割り当てます。

メモ

各国言語サポート文字のマップ

各国言語サポート (National Language Support) ユーティリティ $X/$Y タブは、現在のロケールに対する $X カーソルと $Y カーソルの移動文字を定義します。詳細は、"Caché 専用のシステム/ツールおよびユーティリティ" の “各国言語サポートのシステム・クラス” のセクションを参照してください。

端末入出力での $Y

以下の表は、$Y での異なる文字の影響を示します。

エコーされる文字 ASCII コード $Y での効果
<FORM FEED> 12 $Y=0
<RETURN> 13 $Y=$Y
<LINE FEED> 10 $Y=$Y+1
<BACKSPACE> 8 $Y=$Y
<TAB> 9 $Y=$Y
出力できる ASCII 文字 32-126 $Y=$Y

OPEN コマンドと USE コマンドの S(ecret) プロトコルは、エコーをオフにします。また、入力中に $Y が変更されるのを防ぎ、正しいカーソル位置を示します。

垂直位置を変更する WRITE $CHAR()$Y も変更します。垂直位置を変更する WRITE *$Y を変更ません。例えば、WRITE $Y,$CHAR(10),$Y は改行を行い、$Y をインクリメントします。一方、WRITE $Y,*10,$Y は改行を行いますが、$Y をインクリメントしません (詳細は、"WRITE" コマンドを参照してください)。

WRITE *$Y を変更しないので、制御シーケンスを端末に送信しても、正しいカーソル位置を反映することができます。制御シーケンスによってはカーソルを移動するものもあるので、SET コマンドを使用して直接 $Y を設定することができます。例えば、以下のコマンドは VT100 ターミナルでコラム 20 と行 10 にカーソルを移動し、それにしたがって $X$Y を設定します。

  SET dy=10,dx=20
  WRITE *27,*91,dy+1,*59,dx+1,*72
  SET $Y=dy,$X=dx

デバイスは動作するのに出力しない ANSI 標準制御シーケンス (エスケープ・シーケンスなど) は、$X 値、$Y 値と正しいカーソル位置の間での矛盾を生じます。この問題を避けるために WRITE * 文を使用して、文字列で各文字の ASCII 値を指定します。例えば、以下のコードを使用する代わりに、

   WRITE $CHAR(27)_"[1m"

同じ意味を持つ以下の形式を使用します。

   WRITE *27,*91,*49,*109

通常、明示的にカーソルを移動するエスケープ・シーケンスの後、$X$Y を更新して、実カーソル位置を反映します。

関連項目

FeedbackOpens in a new tab