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?

PRINT

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

Synopsis

PRINT:pc lineref1:lineref2
P:pc lineref1:lineref2

引数

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

概要

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

Note:

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

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

   /* This comment includes

      a blank line */ 

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

  • 引数なし

  • 引数付き

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

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

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

引数

pc

オプションの後置条件式。Caché は、後置条件式が True (0 以外の数値に評価される) の場合に PRINT コマンドを実行します。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 文字は一意である必要があります。PRINT は、指定された label の最初の 31 文字のみと一致します。ラベル名では大文字と小文字が区別され、Unicode 文字を含めることができます。

lineref2

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

lineref2 が行のシーケンス内で、lineref1 よりも先に現れた場合、PRINTlineref2 を無視して、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 引数なしの PRINT は、コメント行を含めて、9 行すべてを表示します。

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

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

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

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

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

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

範囲の例

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

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

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

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

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

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

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

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

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

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

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

関連項目

FeedbackOpens in a new tab