Rational Developer for System z
Enterprise PL/I for z/OS, Version 4.1, プログラミング・ガイド

端末からの入力の制御

次に挙げることを行えば、ユーザーの PL/I プログラムで、入力ファイル へのデータを端末から入力することができます。

  1. CONSECUTIVE 環境オプションを指定して、明示的または暗黙的に入力ファイ ルを宣言する (ストリーム・ファイルはすべてこの条件を満たしています)。
  2. 入力ファイルを端末に割り振る

ユーザーは通常、標準のデフォルト入力ファイル SYSIN を使用することができます。 このファイルはストリーム・ファイルであり、 端末に割り振ることができるからです。

ストリーム・ファイルへの入力をユーザーに促すプロンプトは、 コロン (:) で示されます。 プログラムで GET ステートメントが実行されると、その度にコロンが表示され ます。 また、GET ステートメントが実行されると、システムは次の行に移動します。 ユーザーはそこに必要なデータを入力することができます。 GET ステートメントの実行を完了するのに十分なデータの入って いない行を入力すると、コロンの前に正符号の付いた別の プロンプト (+:) が表示されます。

継続させたい行の最後にハイフンを付け加えると、2 行以上 のデータが入力されるまで、ユーザー・プログラムへのデータ伝送を遅らせることができます。

ユーザーのプログラムで、ユーザーに入力を求めるプロンプトを出す出力ステートメント を組み込んだ場合、ユーザー自身のプロンプトをコロンで終了して、 初期システム・プロンプトが出ないようにすることができます。 例えば、GET ステートメントの前に次のような PUT ステートメントを置くことができます。

PUT SKIP LIST('ENTER NEXT ITEM:');

次の GET ステートメントでシステム・プロンプトが表示されないようにするに は、ユーザー独自のプロンプトは次の条件を満たしている必要があります。

  1. 独自のプロンプトは、リスト指示か編集指示のどちらかでな ければなりません。 また、リスト指示の場合は、PRINT ファイルにあてたものでなければなりません。
  2. プロンプトを伝送するファイルは、端末に割り振る必要があります。 端末でファイルをコピーするだけの場合は、 システム・プロンプトが表示されないようにすることはできません。

TSO のもとでは、端末からの入力を上記のデフォルトの方法より柔軟な方法で制御することを支援する TSO_INPUT_OPT という環境変数がサポートされています。

TSO_INPUT_OPT 環境変数 (大文字でなければならない) の構文は次のとおりです。

構文図を読む構文図をスキップする>>-TSO_INPUT_OPT-- =option-------------------------------------><
 

大文字または小文字の可能性があるオプションを指定するときは、ブランクは許されません。 複数のオプションを指定する場合は、それらのオプションをコンマで区切る必要があります。 また、このステートメントの構文は、コマンド入力時にはチェックされません。 データ・セットのオープン時に、このステートメントの構文が検証されます。 構文が間違っていると、ONCODE 96 で UNDEFINEDFILE 条件が発生します。

指定できるオプションは次のとおりです。

PROMPT
PROMPT オプションは、コロンを端末からのストリーム入力のプロンプトとして表示するかどうかを指定します。
構文図を読む構文図をスキップする             .-N-.
>>-PROMPT--(-+-Y-+-)-------------------------------------------><
 
SAMELINE
SAMELINE オプションは、入力を求めるプロンプトのステートメントと同じ行で、 システム・プロンプトを行わせるかどうかを指定します。
構文図を読む構文図をスキップする               .-N-.
>>-SAMELINE--(-+-Y-+-)-----------------------------------------><
 

これらのオプションが端末の入出力に与える影響について詳しくは、第 6 章の SAMELINE オプションにある例 1 および例 2 を参照してください。

TSO のもとでこの環境変数を指定する 1 つの方法は PLIXOPT ストリングを使用する方法です。 次に例を示します。

   DCL PLIXOPT char(50) var ext static
       init('ENVAR("TSO_INPUT_OPT=PROMPT(Y),SAMELINE(Y)")');

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)