日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
READ |
指定した入力ファイルから1つのレコードを読み込み,レコードの内容を指定されたシンボル名に割り当てます。
READ 論理名[:] シンボル名
論理名[:]
レコードを読み込む入力ファイルの論理名を指定します。ファイルのオープン時に OPEN コマンドで割り当てた論理名を使用します (OPEN コマンドは,論理名を割り当て,その名前をプロセス論理名テーブルに登録します )。さらに SYS$INPUT,SYS$OUTPUT,SYS$ERROR,SYS$COMMAND という論理名によって示される,プロセス・パーマネント・ファイルも指定できます。
シンボル名
読み取られるレコードの内容に割り当てられる,1 〜 255 文字までの英数字シンボル名を指定します。シンボル名の 1 文字目はアルファベット,アンダースコア (_),ドル記号 ($) のいずれかでなければなりません。READ コマンドに対してシンボル名を指定すると,コマンド・インタプリタは,そのシンボル名を現在のコマンド・レベルのローカル・シンボル・テーブルに登録します。シンボルがすでに定義されている場合には,READ コマンドは,そのシンボルを読み込んだ新しい値に再定義します。
READ コマンドは,順編成ファイル,相対編成ファイル,または索引編成ファイルから,データを読み込むことができます。指定されたファイルから各レコードが読み込まれるたびに,レコードポインタがファイル内の次のレコードに移動します。ただし,索引編成ファイルを読み込んでいる場合,/INDEX および /KEY 修飾子を使用すると,レコードをランダムに読み込むことができます。単一の READ コマンドで読み込むことができるレコードの最大サイズは, 2048 バイトです。DCL によってオープンされたリモート・ファイルから 2048 バイトのレコードを読み込むには,システムの省略時のネットワーク・ブロック・カウントを少なくとも 25 に増加する必要があります (DCL SET RMS_DEFAULT/NETWORK=25)。
ファイルを読み込むには,/READ 修飾子を指定した OPEN コマンドを使用して,ファイルをオープンする必要があります。論理名 SYS$INPUT,SYS$OUTPUT, SYS$ERROR,および SYS$COMMAND で識別されるプロセス・パーマネント・ファイルは,読み込むために明示的にオープンする必要はありません。
READ コマンドを会話型で実行し,論理名をプロセス・パーマネント・ファイル SYS$INPUT,SYS$OUTPUT,SYS$COMMAND,または SYS$ERROR のうちいずれか 1 つとして指定した場合,コマンド・インタプリタから入力データを求めるプロンプトが表示されます。 READ コマンドは,入力したとおりにデータを受け付けます。READ コマンドは,文字を大文字に変換したり,余分なスペースとタブを削除したり,二重引用符 (" ") を削除しません。また,シンボルの置換は行われません。READ コマンドでプロンプトを表示する場合についての詳細は,/PROMPT 修飾子を参照してください。
/DELETE
レコードが索引順編成ファイルから読み込まれた後,それをファイルから削除することを指定します。 READ/DELETE コマンドを使用するには, /READ 修飾子と /WRITE 修飾子の両方を使用して,索引順編成ファイルをオープンしなければなりません。/END_OF_FILE=ラベル
ファイルの最後のレコードを読み込んだ後に制御を渡すべき,現在のコマンド・プロシージャ内のラベルを指定します。ファイルの最後のレコードが読み込まれると,OpenVMS レコード管理サービス (RMS) は,ファイルの終わり (EOF) を示すエラー状態を返します。 /END_OF_FILE 修飾子が指定されていると,コマンド・インタプリタは,指定したラベルのコマンド行に制御を移します。/END_OF_FILE を指定していない場合には,ファイルの最後に到達した時に,制御は /ERROR 修飾子で指定されているエラー・ラベルに渡されます。 /ERROR 修飾子も /END_OF_FILE 修飾子も指定していない場合には,現在の ON 条件動作が実行されます。
/ERROR=ラベル
読み込み要求でエラーが発生した時に制御が移される,コマンド・プロシージャ内のラベルを指定します。エラー・ルーチンが指定されていない時に,ファイルの読み込みでエラーが発生した場合には,現在の ON 条件動作が実行されます。この修飾子に対して指定されているエラー・ルーチンは,ON コマンドに指定されている条件動作に優先します。
エラーが発生し,指定されたラベルに制御が正しく渡されると,予約されている $STATUS というグローバル・シンボルに,そのエラーを示すコードがセットされます。このコードによって,それぞれのエラーに対応する処理を行うことができます。
/INDEX=n
索引順編成ファイルを読み込む時に,キーの参照に使用する,索引番号 (n) を指定します。/INDEX 修飾子を省略した場合には,最後に明示的に指定された値が使用されます。値を指定せずに /INDEX 修飾子を使用すると,主キー(/INDEX=0)が使用されます。
/KEY=文字列
指定した文字列と一致するキーを持つレコードを読むように指定します。 2 進キーと整数キーを使用することはできません。この修飾子を /INDEX 修飾子とともに使用すれば,索引順編成ファイルをランダムにアクセスすることができます。キーの照合は,/KEY 文字列に指定されている文字と,レコード・キーに含まれる文字を,比較することによって行われます。
索引順編成ファイルのレコードをランダムに読むには, /KEY 修飾子を指定しなければなりません。レコードをランダムに読み込んだ後,後続の読み込み操作で /KEY 修飾子を指定しなかった場合には,索引順編成ファイルのレコードは,順にアクセスされます。
/MATCH=オプション
一致するキーの照合時に使用される,キー照合アルゴリズムを指定します。下記のオプションを指定することができます。
EQ 指定したキーに等しいキーを選択するように指定します (省略時の設定) GE 指定したキーに等しいか,またはそれより大きなキーを選択するように指定します。 GT 指定したキーより大きいキーを選択するように指定します。 LE 指定したキーに等しいか,またはそれより小さなキーを選択するように指定します。 LT 指定したキーより小さいキーを選択するように指定します。
索引順編成ファイルを読み込む時に,MATCH 修飾子を省略した場合には, /MATCH=EQ が用いられます。
/NOLOCK
読み込まれるレコードがロックされないように指定し,また,他のユーザがすでにロックしているレコードを,読み込むことができるようにします。この修飾子を省略した場合,各レコードは読み込まれるときにロックされ,そのファイルに対する次の I/O でロックが解除されます。
/PROMPT=文字列
ターミナルから読み込まれる時に表示される,代替プロンプト文字を指定します。省略時の設定では,DATA: というプロンプト文字列が表示されます。/TIME_OUT=n
/NOTIME_OUT (省略時の設定)
入力が与えられない時に,READ コマンドが終了するまでの秒数を指定します。 /TIMEOUT 修飾子を入力する場合には,必ず値を指定しなければならず,値は 0 から 255 までの範囲でなければなりません。/ERROR= ラベル修飾子と /TIME_OUT 修飾子の両方を指定すると,指定時間制限が満了したときに,/ERROR で指定したラベルに分岐します。
/WAIT
RAB$V_WAT を設定し,プロセスがファイル内のレコードを待つようにします。 /TIME_OUT とともに使用して,レコードを見つけることができずにタイムアウトするまでに,プロセスが待機する時間を制限することもできます。
#1 |
---|
$ OPEN IN NAMES.DAT $ LOOP: $ READ/END_OF_FILE=ENDIT IN NAME . . . $ GOTO LOOP $ ENDIT: $ CLOSE IN |
OPEN コマンドは,入力のために NAMES.DAT というファイルをオープンし,そのファイルに IN という論理名を割り当てます。READ コマンドは,ファイル IN からレコードを読み込み,その内容を NAME というシンボルに割り当てます。ファイルの最後のレコードが読み込まれた時に, ENDIT というラベルに制御を移すことを,READ コマンドは要求しています。このプロシージャは,ファイルに含まれるすべてのレコードが処理されるまで繰り返します。
#2 |
---|
$ READ/ERROR=READERR/END_OF_FILE=OKAY MSGFILE CODE . . . $ READERR: $ CLOSE MSGFILE . . . $ OKAY: $ CLOSE MSGFILE $ EXIT |
READ コマンドでは,ファイル MSFFILE からレコードをシンボル CODE に読み込んでいます。/ERROR と /END_OF_FILE 修飾子で,ファイルの最後 (EOF) とエラー状態検出時の処理を指定しています。 EOF 検出時にはラベル OKAY に制御が移され,エラー検出時にはラベル READERR に制御が移されます。
#3 |
---|
$ READ SYS$COMMAND DATA_LINE $ WRITE OUTPUT_FILE DATA_LINE . . . |
READ コマンドは,現在の SYS$COMMAND 装置からデータを読み込みます。上記のコマンドを含むコマンド・プロシージャを会話型で実行した場合,ターミナルにプロンプトを出力し,1 行のデータを受け取り,シンボル DATA_LINE にその入力データを割り当てます。
その後,WRITE コマンドで,シンボル DATA_LINE を論理名 OUTPUT_FILE で参照されるファイルに書き出します。
#4 |
---|
$ OPEN/READ INPUT_FILE TRNTO::INVENTORY.DAT $ OPEN/APPEND OUTPUT_FILE RECEIVE.DAT $ READ INPUT_FILE DATA_LINE $ WRITE OUTPUT_FILE DATA_LINE |
OPEN/READ コマンドは,TRNTO というリモート・ノードの,INVENTORY.DAT というファイルを読み込みのためにオープンし,そのファイルに INPUT_FILE という論理名を割り当てます。 OPEN/APPEND コマンドは,現在の省略時のディレクトリにある RECEIVE.DAT というファイルをオープンします。 READ コマンドは,リモート・ノード TRNTO の INVENTORY.DAT というファイルからデータを要求します。WRITE コマンドは,DATA_LINE というシンボルの値を, RECEIVE.DAT というローカル・ファイルの最後に書き込みます。
目次 | 索引 |
|