COBOL で可変長ファイルを定義する方法を教えてください。
COBOLでは、次の文を使用して可変長ファイルを定義できます。
FD 文件名 RECORDING MODE IS V.
01 记录名.
05 字段1 PIC X(10).
05 字段2 PIC X.
05 字段3 PIC X(20).
05 字段4 REDEFINES 字段3.
10 字段4A PIC X(10).
10 字段4B PIC X(10).
上記のコード内では、Vモードを使用してファイルを定義しています。これは、ファイルは可変長であることを示しています。レコード定義では、PIC Xを使用してフィールドを定義していますが、必要に応じて異なる長さを指定できます。今回の例では、フィールド1は長さが10文字、フィールド2は長さが1文字、フィールド3は長さが20文字です。
さらに、可変長フィールドを含むフィールドの定義が必要な場合、例に示したフィールド4のように、REDEFINESキーワードを使用できます。REDEFINESキーワードを使用すると、フィールド4をフィールド3と重複する2つのフィールド、10文字長のフィールド4Aと、これも10文字長のフィールド4Bとして定義できます。
注意すべきなのは、可変長ファイルでは、各レコードの長さが異なる可能性があるため、ファイルの読取り・書込み時は実際の長さを見てデータを処理する必要があること。