固定長定義の入力ファイルに固定長以外のレコードがあった場合、 NetCOBOL実行時にエラーとなりますか?

固定長定義の入力ファイルに固定長以外のレコードがあった場合、 NetCOBOL実行時にエラーとなりますか?たとえば、ファイル定義が固定長80Byteのときに、入力ファイルが80Byte以外のレコードだけしかない場合、NetCOBOL実行時にエラーとなりますか?
NetCOBOL製品として、固定長レコード形式のレコード順ファイルおよび行順ファイルについては、入力ファイルのレコード長のチェックはしていないため、実行時エラーにはなりません。プログラムにてチェックするなどの方法で代替してください。

代替案としては、以下があります。
  • レコード順ファイルの場合
    COBOLプログラムでファイルを入力する前に、C言語プログラムによって、ファイルサイズがレコード長の整数倍になっているかをチェックします。
    Solaris/Linuxでは、システム関数statによって、ファイルサイズを調べることができます。

  • 行順ファイルの場合
    プログラムでのファイル定義を、固定長ではなく可変長にして、読み込んだレコードが想定の長さ(今回のご質問の場合なら80Byte)と異なるか、プログラムで判定してください。
    読み込んだレコードの長さは、ファイル記述項のRECORD句にDEPENDING ON データ名を指定して調べることができます。

製品・サービス情報
対象製品NetCOBOL
プラットフォームWindows x86, Windows x64, .NET, Solaris, Linux x86, Linux Intel64, Linux Itanium
アンサー種別 技術サポート
このページの先頭へ