ZWRite

ZWRITEコマンドは、1つ以上のローカル変数、エイリアス変数、またはグローバル変数の現在値を表示します。ディスプレイ内の各項目が SET @ コマンドに有効な引数をフォーマットするように、 ZWRITEはその出力をフォーマットします。これは、ZWRITEが引用符で文字列値を囲み、$CHAR() シンタックスの非グラフィック(制御)文字を表すことを意味します。

ZWRITEコマンドのフォーマットは:

ZWR[ITE][:tvexpr] [zwrglvn[,...]]

エイリアス変数のZWRITEフォーマット

ZWRITEとZSHOW "V" は、ZWRITEフォーマットで、エイリアス変数、エイリアスのコンテナの変数、以下の説明される関連データの値をダンプします。 ZWRITEフォーマットでは、配列の内容は、名前の辞書順で最初に現れる配列に関連付けられている名前で表示されます。GT.Mは、もしあれば、添字なしの値に表記上のスペースとセミコロンとアスタリスク(" ;* ") のシーケンスを追加しする、添字なしと添字付きの両方のノードと値を表示します。ZWRITE形式の出力は、ループ内で実行されるコマンド READ x と Set @ x(xは任意の名前)でGT.Mプロセスに読み込むことができます。 " ;* " は、SETコマンドによって無視されたコメントとして作用します。次の例では、AとCが同じ配列に関連付けられているエイリアスであるため、その配列のノードは、値がCに割り当てられていたにもかかわらず、Cの前に辞書的に発生するAで出力されます。

GTM>Set C=1,C("Malvern")="Wales",*A=C,*B(-3.14)=C
        
GTM>ZSHow "V" ; ZWRite would produce the same output
A=1 ;*
A("Malvern")="Wales"
*B(-3.14)=A
*C=A
GTM>ZWRite C ; Only one is name associated with the array on this ZWRite command
C=1 ;*
C("Malvern")="Wales"
GTM> 

この例に続いて、もしZWRITEコマンド用に選択された変数がエイリアス変数に関連付けられているいずれかが含まれていない場合、出力はデータではなくリファレンスのみ示しています。

GTM>ZWRITE B ; B only has a container
*B(-3.14)=A
GTM>

ZWRITE / ZSHOW "V" が、現在ないエイリアス変数で配列のためのエイリアスのコンテナを検出する時、n は任意のユニークな整数であるその配列のための変エイリアス数の架空の名前として 変数名 $ZWRTACnを使用しています。 SETコマンドは、このように、関連付けられているエイリアス変数を使用せずにエイリアスコンテナを再作成するために使用されるZWRITE/ ZSHOW "V"の出力を可能にしている、この特別な名前を認識します。上記の例を続けると:

GTM>Kill *A,*C ; Delete alias variables and associations, leaving only the container
        
GTM>ZWRite
$ZWRTAC=""
*B(-3.14)=$ZWRTAC1
$ZWRTAC1=3 ;*
$ZWRTAC1("Malvern")="Wales"
$ZWRTAC=""
GTM> 

ZWRITEは、SET @ がsetの左側の有効なターゲットとして受け付ける、データセルのアンカーとして機能するように$ZWRTACn の名前を生成します。 $ZWRTACn の名前が作成され、そして、以前にキャプチャされた変数の状態の復元を駆動するZWRITEの出力を使用するときに破棄されます。 ZWRITE出力が出現するそれらを除き、そして、左側の SET @ ターゲットのようなものは、何も機能を持ちません。SET以外に、それらシンタックスで$ZWRTAC *を使用可能な他のコマンドはありません。 $ZWRTACnは表面的には特殊変数(ISV)のように見えますが、それらは ISV ではありません。添字なし$ZWRTACnは、SET * コマンドのターゲット(等号記号の左側)として機能できます。SET $ZWRTAC(末尾の整数なし)は、$ZWRTAC 接頭辞エイリアスに関連付けられたすべてのデータセルを削除します。 GT.Mは大文字の非省略名と接頭辞$ZWRTACを認識だけします。

ZWRITEはエイリアス変数の値を表示する時、SET @へ引数としてZWRITE出力の使用に干渉することなく視覚的にエイリアスにタグ付けする名前のために ";*" を表します。同じデータのために少なくとも2つのエイリアスがその引数に一致するときに、ZWRITEは、唯一エイリアス変数を識別することができます。 ZWRITEが現在関連付けられているエイリアスがないエイリアスのコンテナ変数を検出する時、データを公開するZWRTACメカニズムを使用します。SET @ は、ZWRTACメカニズムで公開されたデータを復元することができます。

注意 注意

独自の $ZWRTACn "変数" を作成や操作をしないことをFISは強く推奨します。それらはエイリアス変数とコンテナを実装するためにサポートされる機能の一部ではなく、むしろ、GT.Mのユーザであるあなたに見える形の基本の実装の一部です。 FISは、それ自身の便宜のためにいつでも、GT.Mの$ZWRTACの使用を任意に変更することができます。ZWRITEとZSHOW "V"の出力ではそれらが表示される場合があるので、それらは、ここでしか文書化されます。

ZWRITEの例

例:

GTM>ZWRITE ^?1"%"2U(0:":",)

このコマンドは、"%" で始まり2つの大文字の2文字を持っている、全てのグローバル名の0から ":" までのすべての添字の下位ノードを表示します - たとえば、"%AB"。

例:

GTM>ZWRITE A(,:,3)

このコマンドは、ローカル変数 A の3の添字で3番目のレベルのすべてのノードを表示します。

例:

ZWRITE ?1"A".E(?1"X"3N)

これは、必要に応じて任意の文字が続く"A" で始まり、次に"X"で始まり3つの数字が続く添字を持っている、いずれかのローカル変数のデータが表示されます。

例:

GTM>Set A=1,*B=A ; Create an array and an alias association
                
GTM>ZWRite ; Show that the array and association exist
A=1 ;*
*B=A
inserted by FC2 system