Synopsis
PRINT:pc lineref1:lineref2 P:pc lineref1:lineref2
引数
pc | オプション — 後置条件式 |
lineref1 | オプション — 表示される行、もしくは表示される行の範囲の最初の行。ラベル名、数値オフセット (+n)、またはラベル名と数値オフセットのいずれかになります。省略した場合、現在のルーチン全体が表示されます。 |
:lineref2 | オプション — 表示される行の範囲の最後の行。範囲を指定するには、lineref1 を指定する必要があります。 |
概要
PRINT コマンドは、現在ロードされているルーチンからコードの行を表示します。出力は、現在のデバイスに送られます。現在のデバイスは、USE コマンドで設定します。現在のルーチンの名前については、$ZNAME 特殊変数にアクセスします。現在のデバイスのデバイス ID については、$IO 特殊変数にアクセスします。
表示される行には、すべてのラベル、コメント、および空白が含まれます。例外として、すべて空白の行は表示もカウントもされません。このため、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
印刷する行、または表示や印刷する行の範囲の最初の行。以下のいずれかの構文形式で指定できます。
-
+offset : offset は、現在のルーチンの行番号を指定する正の整数です。+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 よりも先に現れた場合、PRINT は lineref2 を無視して、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 行目を表示します。lineref1 と lineref2 はともに同一行を指定しています。
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 はコード内で先に出現しているので、無視されます。