Cobol-file-handling-verbs
COBOL-ファイル処理動詞
ファイル処理動詞は、ファイルに対してさまざまな操作を実行するために使用されます。 以下は、ファイル処理動詞です-
- Open
- Read
- 書きます
- リライト
- 削除する
- 開始 *閉じる
動詞を開く
オープンは、実行する必要がある最初のファイル操作です。 Openが成功した場合、ファイルに対してそれ以降の操作のみが可能です。 ファイルを開いた後にのみ、ファイル構造内の変数を処理に使用できます。* FILE STATUS *変数は、各ファイル操作の後に更新されます。
構文
ここで、file-nameは文字列リテラルであり、ファイルに名前を付けるために使用します。 ファイルは、次のモードで開くことができます-
Sr.No. | Mode & Description |
---|---|
1 |
Input 入力モードは既存のファイルに使用されます。 このモードでは、ファイルの読み取りのみが可能で、ファイルに対する他の操作は許可されていません。 |
2 |
Output 出力モードは、ファイルにレコードを挿入するために使用されます。 *順次ファイル*が使用され、ファイルがいくつかのレコードを保持している場合、既存のレコードが最初に削除されてから、新しいレコードがファイルに挿入されます。 *インデックス付きファイル*または*相対ファイル*の場合は発生しません。 |
3 |
Extend 拡張モードは、 sequential file にレコードを追加するために使用されます。 このモードでは、レコードは最後に挿入されます。 ファイルアクセスモードが*ランダム*または*ダイナミック*の場合、拡張モードは使用できません。 |
4 |
I-O 入出力モードは、ファイルのレコードを読み書きするために使用されます。 |
動詞を読む
読み取り動詞は、ファイルレコードを読み取るために使用されます。 読み取りの機能は、ファイルからレコードを取得することです。 読み取り動詞ごとに、ファイル構造に読み取れるレコードは1つだけです。 読み取り操作を実行するには、ファイルをINPUTモードまたはI-Oモードで開きます。 読み取りステートメントごとに、ファイルポインターがインクリメントされるため、連続するレコードが読み取られます。
構文
以下は、ファイルアクセスモードがシーケンシャルの場合にレコードを読み取る構文です-
以下は、使用されるパラメータです-
- NEXT RECORDはオプションであり、インデックス付きシーケンシャルファイルがシーケンシャルに読み取られるときに指定されます。
- INTO句はオプションです。 ws-file-structureはWorkingStorageセクションで定義され、READステートメントから値を取得します。
- AT END条件は、ファイルの終わりに達するとTrueになります。
例-次の例は、行順編成を使用して既存のファイルを読み取ります。 このプログラムは、ファイルに存在するすべてのレコードを表示する Live Demo オプションを使用してコンパイルおよび実行できます。
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
構文
以下は、ファイルアクセスモードがランダムな場合にレコードを読み取る構文です-
例-次の例では、インデックス化された組織を使用して既存のファイルを読み取ります。 このプログラムは、メインフレームで JCL を使用してコンパイルおよび実行でき、ファイルに存在するすべてのレコードが表示されます。 Mainframesサーバーでは、テキストファイルは使用しません。代わりに、PSファイルを使用します。
メインフレームに存在するファイルの内容が上記の例のinput.txtファイルと同じであると仮定しましょう。
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
動詞を書く
書き込み動詞は、ファイルにレコードを挿入するために使用されます。 レコードが書き込まれると、レコードバッファで使用できなくなります。 レコードをファイルに挿入する前に、値をレコードバッファーに移動してから、書き込み動詞を実行します。
Writeステートメントを FROM オプションとともに使用して、作業用ストレージ変数からレコードを直接書き込むことができます。 Fromはオプションの句です。 アクセスモードがシーケンシャルの場合、レコードを書き込むには、ファイルを出力モードまたは拡張モードで開く必要があります。 アクセスモードがランダムまたはダイナミックの場合、レコードを書き込むには、ファイルを出力モードまたはI-Oモードで開く必要があります。
構文
以下は、ファイル編成がシーケンシャルであるときにレコードを読み取るための構文です-
以下は、ファイル編成がインデックス付けされているか、相対であるときにレコードを読み取るための構文です-
例-次の例は、組織がシーケンシャルであるときに新しいファイルに新しいレコードを挿入する方法を示しています。
上記のプログラムをコンパイルして実行すると、新しいレコードが出力ファイルに追加されます。
動詞を書き換える
Rewrite verbは、レコードを更新するために使用されます。 書き換え操作を行うには、ファイルをI-Oモードで開く必要があります。 読み取り操作が成功した後にのみ使用できます。 Rewrite verbは、最後に読み取られたレコードを上書きします。
構文
以下は、ファイル編成がシーケンシャルであるときにレコードを読み取るための構文です-
以下は、ファイル編成がインデックス付けされているか、相対であるときにレコードを読み取るための構文です-
例-次の例は、前の書き込みステップで挿入した既存のレコードを更新する方法を示しています-
上記のプログラムをコンパイルして実行すると、レコードが更新されます-
動詞を削除
削除動詞は、インデックス付きファイルおよび相対ファイルでのみ実行できます。 ファイルはI-Oモードで開く必要があります。 順次ファイル編成では、レコードを削除できません。 順次アクセスモードの場合、Readステートメントによって最後に読み取られたレコードは削除されます。 ランダムアクセスモードでは、レコードキーを指定してから、削除操作を実行します。
構文
以下は、レコードを削除するための構文です-
例-既存のレコードを削除するには-
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
動詞を開始
開始動詞は、インデックス付きファイルおよび相対ファイルでのみ実行できます。 特定のレコードにファイルポインターを配置するために使用されます。 アクセスモードは、シーケンシャルモードまたはダイナミックモードでなければなりません。 ファイルはI-Oまたは入力モードで開く必要があります。
構文
以下は、特定のレコードにポインタを配置するための構文です-
動詞を閉じる
ファイルを閉じるには、閉じる動詞が使用されます。 Close操作を実行した後、ファイル構造内の変数は処理に使用できなくなります。 プログラムとファイル間のリンクは失われます。
構文
以下は、ファイルを閉じるための構文です-