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?

ZPRINT

現在のデバイスに現在のルーチンからのコード行を表示します。

Synopsis

ZPRINT:pc lineref1:lineref2
ZP:pc lineref1:lineref2

引数

pc オプション — 後置条件式。
lineref1 オプション — 表示される行、もしくは表示される行の範囲の最初の行。ラベル名、数値オフセット (+n)、またはラベル名と数値オフセットのいずれかになります。省略した場合、現在のルーチン全体が表示されます。
:lineref2 オプション — 表示される行の範囲の最後の行。範囲を指定するには、lineref1 を指定する必要があります。

概要

ZPRINT コマンドは、現在ロードされているルーチンからコードの行を表示します。出力は、現在のデバイスに送られます。現在のデバイスは、USE コマンドで設定します。現在のルーチンの名前については、$ZNAME 特殊変数にアクセスします。現在のデバイスのデバイス ID については、$IO 特殊変数にアクセスします。

Note:

ZPRINT コマンドと PRINT コマンドは機能的に同一です。

表示される行には、すべてのラベル、コメント、および空白が含まれます。例外として、すべて空白の行は表示もカウントもされません。このため、ZPRINT では、以下の複数行コメントが 3 行ではなく、2 行で表示およびカウントされます。

   /* This comment includes

      a blank line */ 

ZPRINT には、以下の 2 つの形式があります。

  • 引数なし

  • 引数付き

引数なしの ZPRINT は、現在ロードされているルーチンのすべてのコードの行を表示します。

引数付きの ZPRINT は、指定されたコードの行を表示します。ZPRINT lineref1 は、lineref1 によって指定された行を表示します。ZPRINT lineref1:lineref2 は、lineref1 から lineref2 まで (両端を含む) の行を表示します。

lineref 引数は、ルーチンのオブジェクト・コード・バージョンを使用して、行および行オフセットをカウントします。ソース・バージョンに対応する行および行オフセットを正しくカウントするために、ルーチンの変更後、ZPRINT のルーチンをリコンパイルする必要があります。

$TEXT 関数を使用して、単一のコード行を返すことができます。

引数

pc

オプションの後置条件式。Caché は、後置条件式が True (0 以外の数値に評価される) の場合に ZPRINT コマンドを実行します。Caché は、後置条件式が False (0) の場合はコマンドを実行しません。詳細は、"Caché ObjectScript の使用法" の "コマンド後置条件式" を参照してください。

lineref1

印刷する行、または表示や印刷する行の範囲の最初の行。以下のいずれかの構文形式で指定できます。

  • +offsetoffset は、現在のルーチンの行番号を指定する正の整数です。+1 はルーチンの最初の行であり、ラベル行とすることもできます。+0 は常に空の文字列を返します。

  • label[+offset]label はルーチン内のラベルであり、offset はこのラベルからカウントする行数となります (ラベル自体の offset は 0 としてカウント)。offset オプションを省略、または label+0 と指定すると、Caché はラベル行を印刷します。この形式では、ラベル自体の行は 0 としてカウントされるので、offset は事実上 offset+1 として評価されることに注意してください。例えば、label+1 では、ラベルの後の行が印刷されます。

ラベルは、31 文字よりも長くすることができますが、最初の 31 文字は一意である必要があります。ZPRINT は、指定された label の最初の 31 文字のみと一致します。ラベル名では大文字と小文字が区別され、Unicode 文字を含めることができます。

lineref2

表示される範囲の最後の行。lineref1 と同じ方法で指定します。lineref2 を指定するには、lineref1 を指定する必要があります。lineref1 および lineref2 はコロン (:) 記号で区切ります。コロンと lineref2 の間に空欄を入れることはできません。

lineref2 が行のシーケンス内で、lineref1 よりも先に現れた場合、ZPRINTlineref2 を無視して、lineref1 で指定される単一のコード行を表示します。

以下のコード行が与えられた場合を示します。

AviationLetters
Abc
  WRITE "A is Abel",!
  WRITE "B is Baker",!
  WRITE "C is Charlie",!
Def WRITE "D is Delta",!
  WRITE "E is Epsilon",!
  /* Not sure about E */
  WRITE "F is Foxtrot",!

lineref 引数なしの ZPRINT は、コメント行を含めて、9 行すべてを表示します。

ZPRINT +0 は、空の文字列を表示します。

ZPRINT +1 は、ラベル AviationLetters を表示します。

ZPRINT +8 は、コメント行 /* Not sure about E */ を表示します。

ZPRINT +10 は、空の文字列を表示します。

ZPRINT Def または ZPRINT Def+0 は、行 Def WRITE "D is Delta",! を表示します。これは、実行可能なコードも含むラベル行です。

ZPRINT Def+1 は、行 WRITE "E is Epsilon",! を表示します。

範囲の例

ZPRINT +0:+3 は、空の文字列を表示します。

ZPRINT +1:+3 は、最初の 3 行を表示します。

ZPRINT +3:+3 は、3 行目を表示します。

ZPRINT +3:+1 は、3 行目を表示します。lineref2 は無視されます。

ZPRINT +3:Abc+1 は、3 行目を表示します。lineref1lineref2 はともに同一行を指定しています。

ZPRINT +3:abc+1 は、3 行目からルーチンの最後までを表示します。行ラベルは大文字と小文字が区別されるので、範囲の端点が判別されません。

ZPRINT Abc+1:+4 は、3 行目と 4 行目を表示します。

ZPRINT Abc+1:Abc+2 は、3 行目と 4 行目を表示します。

ZPRINT Abc:Def は、2、3、4、5、および 6 行目を表示します。

ZPRINT Abc+1:Def は、3、4、5、および 6 行目を表示します。

ZPRINT Def:Abc は、行 Def WRITE "D is Delta",! を表示します。lineref2 はコード内で先に出現しているので、無視されます。

関連項目

FeedbackOpens in a new tab