日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS
ドキュメント・ライブラリ

タイトルページ
目次
まえがき
リファレンス・セクション
    ≫ コマンド一覧
    ≫ レキシカル関数
付録 A:廃止されたコマンド
付録 B:DCL整数表現の範囲を超える数値の処理
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引




論理名によって指定されたオープンされたファイルに,指定したデータを書き込みます。データは,オープンされたファイルに 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 の値を連結し,このデータをファイルの最後に新しいレコードとして書き込みます。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.