$ZMODE (ObjectScript)
現在の入出力デバイス OPEN パラメータを含みます。
構文
$ZMODE
$ZM
概要
$ZMODE は、現在のデバイス OPEN コマンド、または USE コマンドで指定したパラメータを含みます。返される文字列には、キャノニック形式で現在の入出力デバイスをオープンするために使用されるパラメータが含まれます。これらのパラメータ値は、バックスラッシュ区切り文字で分けられます。TCP/IP 上の "M" のように開いているパラメータは、"PSTE" に正規化されます。"Y" や "K" パラメータ値は、常に最後に配置されます。
この特殊変数は、SET コマンドを使用して変更することはできません。変更を試みると、<SYNTAX> エラーが返されます。
例
以下の例は、$ZMODE を使用して現在のデバイスのパラメータを返します。
WRITE !,"The current OPEN modes are: ",$PIECE($ZMODE,"\")
WRITE !,"The NLS collation is: ",$PIECE($ZMODE,"\",2)
WRITE !,"The network encoding is: ",$PIECE($ZMODE,"\",4)
以下の例は、現在のデバイスのパラメータを USE コマンドを使用して設定します。これは、USE コマンドの前後に、$ZMODE で現在のパラメータをチェックします。特定のパラメータが設定されたことをテストするため、この例はバックスラッシュ区切り文字がある $PIECE 関数を使用し、包含関係演算子 ([) を使用して値のテストを行います ("演算子と式" を参照してください)。
Zmodetest
WRITE !, $ZMODE
IF $PIECE($ZMODE,"\")["S" {
WRITE !, "S is set" }
ELSE {WRITE !, "S is not set" }
USE 0:("":"IS":$CHAR(13,10))
WRITE !, $ZMODE
IF $PIECE($ZMODE,"\")["S" {
WRITE !, "S is set" }
ELSE {WRITE !, "S is not set" }
QUIT
USER>DO ^zmodetest
RY\Latin1\K\UTF8\
S is not set
SIRY\Latin1\K\UTF8\
S is set