ファイルの作成時にデータの編成を決めます。 ファイルを作成したら、それ以降、ファイルを拡張することはできますが、 その編成を変更することはできません。
ファイルの中にレコードが配置される物理的な順番が、レコードのシーケンスを決定します。 ファイルの拡張はできますが、ファイルの中のレコードの相互関係は変更されません。 レコードは固定長または可変長のどちらも可能であり、キーはありません。
ファイルの中で、最初のレコード以外のレコードには、その先行レコードがそれぞれ一意に決まります。また最後のレコード以外のレコードには、その後続レコードがそれぞれ一意に決まります。
ファイル中の各レコードには、1 つ以上の組み込みキー (キー・データ項目 として参照される) があり、それぞれのキーは索引に関連しています。 各索引は、それに関連する埋め込みレコード・キー・データ項目の内容に従って、データ・レコードへの論理パスを提供します。索引付きファイルは、 直接アクセス・ストレージのファイルでなければなりません。 レコードは固定長でも可変長でも可能です。
索引付きファイルの各レコードには、 基本キー・データ項目が埋め込まれていなければなりません。 レコードの挿入、更新、または削除が実行される場合、それらのレコードはその基本キーの値によってのみ識別されます。したがって、基本キー・データ項目の値はそれぞれ固有な値でなければならず、 レコードの更新時にその値を変更してはなりません。 この基本キー・データ項目の名前は、ファイル制御段落の RECORD KEY 文節によって COBOL プログラムに知らせます。
さらに索引付きファイルの各レコードには、 1 つ以上の埋め込み代替キー・データ項目を指定できます。各代替キーは、検索するレコードを識別する別の方法を提供します。この代替キー・データ項目の名前は、ファイル制御段落の ALTERNATE RECORD KEY 文節によって COBOL プログラムに知らせます。
特定の入出力要求に使用されるキーは、参照キー と呼ばれます。
これは、ファイルをそれぞれに 1 つのレコードが含まれているレコード域のストリングとみなします。 それぞれのレコード域は、相対レコード番号で識別されます。その相対レコード番号に基づいて、アクセス方式によりレコードが格納され検索されます。例えば、最初のレコード域は相対レコード番号 1 でアドレスが指定され、10 番目のレコードは相対レコード番号 10 でアドレスが指定されます。ファイルの中でレコードが配置される物理的なシーケンスは、各レコードが入れられるレコード域とは関係がなく、したがって、各レコードの相対レコード番号とも関係がありません。相対ファイルは、直接アクセス・ファイルでなければなりません。 レコードは固定長でも可変長でも可能です。
行順次ファイルでは、各レコードには、レコード区切り文字で終わる一連の文字が入っています。 区切り文字はレコードの長さには数えられません。
レコードの書き込み時には、レコード区切り文字を追加する前に末尾ブランクがあれば除去されます。レコード域に入っている最初の文字から追加された レコード区切り文字までを含む文字が 1 つのレコードとしてファイルに書き込まれます。
レコードの読み取り時には、以下の条件が発生するまで一度に 1 文字ずつ文字がレコード域に読み取られます。
行順次ファイルに書き込まれるレコードは、USAGE DISPLAY や DISPLAY-1 または DISPLAY と DISPLAY-1 項目の 組み合わせとして記述するデータ項目から構成されている必要があります。 CHAR(EBCDIC) コンパイラー・オプションが有効である場合、DISPLAY または DISPLAY-1 項目は、データ項目の USAGE 文節内の NATIVE 句の有無によって、ASCII または EBCDIC でエンコードできます。ゾーン 10 進データ項目は、符号なしであるか、符号付きの場合は SEPARATE CHARACTER 句で宣言する必要があります。
行順次ファイルに含まれるのは、印刷可能文字と以下の表に示す制御文字のみでなければなりません。
| 制御文字 | ASCII の 16 進値 | EBCDIC の 16 進値 |
|---|---|---|
| ベル | 07 | 2F |
| バックスペース | 08 | 16 |
| 用紙送り | 0C | 0C |
| 改行 | 0A | 15 |
| 復帰 | 0D | 0D |
| 水平タブ | 09 | 05 |
| 垂直タブ | 0B | 0B |
| ダミー DBCS シフトアウト | 1E | |
| ダミー DBCS シフトイン | 1F | |
| DBCS シフトアウト | 0E | |
| DBCS シフトイン | 0F |
改行文字は、レコード区切り文字として処理されます。他の制御文字は COBOL がファイルにあるレコードのデータの一部として扱います。
行順次ファイルにおいては、次のものはサポートされません。
他の編成 (順次、相対、および索引付き) のファイルでは、以下の言語エレメントは構文チェックの対象となりますが、プログラムの実行には影響を及ぼしません。
エラー・メッセージは生成されません (ただし、LABEL RECORDS 文節、USE ... AFTER ... LABEL PROCEDURE 文節、および GO TO MORE-LABELS 文節のデータ名オプションを除く)。