日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
WRITE |
論理名によって指定されたオープンされたファイルに,指定したデータを書き込みます。データは,オープンされたファイルに 1 レコードとして書き込まれます。修飾子はすべて,式に先行して指定しなければなりません。
WRITE 論理名式[,...]
論理名
出力ファイルに割り当てられている論理名を指定します。ここには,OPEN コマンドにより割り当てられた論理名を指定します。会話型モードでは,論理名 SYS$INPUT,SYS$OUTOUT,SYS$ERROR,および SYS$COMMAND により識別される,プロセス・パーマネント・ファイルを指定します。 OPEN コマンドはファイルに論理名を割り当て,論理名を論理名テーブルに登録します。式[,...]
出力ファイルに 1 レコードとして書き込むデータを指定します。データ項目はシンボル名,二重引用符で囲まれた文字列,リテラル値,レキシカル関数などの文字列式を使用して指定します。文字列式についての詳細は,『OpenVMS ユーザーズ・マニュアル』を参照してください。コンマ(,)で区切ることにより複数の式を指定できます。コマンド・インタプリタは,各項目を 1 つのレコードに連結し,そのレコードを出力ファイルに書き込みます。
書き込むことができるレコードの最大サイズは,1024 バイトです。またレコードの一部として指定される,あらゆるシンボルの値は 255 を越えてはなりません。ただし /SYMBOL 修飾子を指定している場合は例外となり,この場合の最大サイズは 2048 バイトであり,シンボルの値は 255 文字を越えることができます。
WRITE コマンドは,書き込みに対してオープンされている順編成ファイル,相対編成ファイル,または索引ファイルに,レコードを書き込むことができます。 WRITE コマンドを使用してレコードを書き込む場合,レコードを書き込んだ直後にレコード・ポインタを常に設定します。レコードをファイルに書き込む場合,そのファイルは, OPEN コマンドに /WRITE または /APPEND 修飾子を使用してオープンにしておかなければなりません。ただし論理名 SYS$INPUT,SYS$OUTPUT,SYS$ERROR,および SYS$COMMAND により識別されるプロセス・パーマネント・ファイルは,明示的にオープンにしておく必要はありません。
/SYMBOL 修飾子を指定しない場合は, DCL によりコマンドと完全な文字列式は 1024 バイトのバッファに記憶されます。 /SYMBOL 修飾子を指定すると,DCL により 1 つまたは複数のシンボルが解釈され,展開された文字列は別々の 2048 バイトのバッファに記憶されます。その後,書き込み操作が行われます。このため,レコードが 1000 バイト以上ある場合は, /SYMBOL 修飾子を指定してください。
/ERROR=ラベル
入出力エラーが発生した場合は, (コマンド・プロシージャ内の) ラベルで指定される位置に,制御を移します。エラー・ルーチンが指定されていないときに,ファイルの書き込み中にエラーが発生すると,現在の ON 条件処理が実行されます。この修飾子に対して指定されているエラー処理ルーチンは, ON コマンドに指定されている処理よりも優先されます。エラーが発生し,行き先として指定したラベルに制御が正しく移ると, $STATUS という予約済みグローバル・シンボルに,そのエラーを示すコードが設定されます。/SYMBOL
書き込み操作が実行される前に式が解釈され,展開された値が 2048 バイトのバッファに記憶されることを指定します。複数の式を指定した場合には,各式の値が連結され,2048 バイトのバッファに記憶されます。非常に大きなレコードを書き込む場合は,/SYMBOL 修飾子を使用します。/SYMBOL 修飾子を使用しない場合には,式を含めたコマンド全体が 1024 バイトのバッファに記憶されます。
/UPDATE
既存のレコードを,指定したレコードを使用して更新することを指定します。 /UPDATE 修飾子を使用するためには,ファイルの読み込みと書き込みができなければなりません。 WRITE/UPDATE コマンドを使用できるのは,READ コマンドを実行したあとのみです。 WRITE/UPDATE コマンドは,最後に読み込まれたレコードを変更します。順編成ファイルに対して WRITE/UPDATE コマンドを使用する場合には,同じサイズのレコードと置き換えなければなりません。
/WAIT (省略時の設定)
/NOWAIT
/NOWAIT を指定すると,メールボックス・デバイスへの Put サービスは,IO$M_NOW 修飾子を使用するため,メールボックスの読み込み側と同期を取らずに,操作はすぐに完了します。現在この修飾子は,Alpha および Integrity だけでサポートされています。
#1 |
---|
$ WRITE SYS$OUTPUT "Beginning second phase of tests" |
この例で WRITE コマンドは,1 行のテキストを現在の出力装置に書き込みます。
#2 |
---|
$ OPEN/APPEND OUTPUT_FILE TRNTO::DKA1:[PGM]PLAN.DAT $ WRITE OUTPUT_FILE "BEGINNING PHASE 3" |
この例で OPEN/APPEND コマンドは,リモート・ノード TRNTO でファイル PLAN.DAT をオープンし,ファイルの最後にポインタを設定します。 WRITE コマンドはファイル PLAN.DAT の最後にレコードを書き込みます。
#3 |
---|
$ OPEN/WRITE OUTPUT_FILE TESTFILE.DAT $ INQUIRE ID "Assign Test-id Number" $ WRITE/ERROR=WRITE_ERROR OUTPUT_FILE "Test-id is ",ID $ WRITE/ERROR=WRITE_ERROR OUTPUT_FILE "" $ ! $ WRITE_LOOP: . . . $ GOTO WRITE_LOOP $ END_LOOP: $ ! $ CLOSE OUTPUT_FILE $ PRINT TESTFILE.DAT $ EXIT $ ! $ WRITE_ERROR: $ WRITE SYS$OUTPUT "There was a WRITE error." $ CLOSE OUTPUT_FILE $ EXIT |
OPEN コマンドでファイル TESTFILE.DAT をオープンし, INQUIRE コマンドでシンボル ID に識別番号を割り当て, WRITE コマンドでシンボル ID と空行を書いています。
ラベル WRITE_LOOP と END_LOOP の間では,適当な処理を行って他の情報をファイルに書いています。処理が終了すると,制御はラベル END_LOOP に移り CLOSE コマンドでファイルをクローズし,PRINT コマンドでプリンタへ出力しています。
ラベル WRITE_ERROR は /ERROR 修飾子の対象として使用され, WRITE コマンド実行時にエラーが発生した場合は,ここへ制御が移ります。
#4 |
---|
$ OPEN/APPEND MYFILE [LAMPERT]TESTING.DAT $ WRITE/SYMBOL MYFILE A,B,C |
この例ではシンボル A,B,C がすでに定義済みであると仮定されています。 OPEN/APPEND コマンドは [LAMPERT]TESTING.DAT というファイルをオープンし,ファイルの最後にポインタを設定します。 WRITE/SYMBOL コマンドはシンボル A,B,C の値を連結し,このデータをファイルの最後に新しいレコードとして書き込みます。
目次 | 索引 |
|