固定長定義の入力ファイルに固定長以外のレコードがあった場合、 NetCOBOL実行時にエラーとなりますか?
NetCOBOLのよくあるご質問を検索できます。
- 固定長定義の入力ファイルに固定長以外のレコードがあった場合、 NetCOBOL実行時にエラーとなりますか?たとえば、ファイル定義が固定長80Byteのときに、入力ファイルが80Byte以外のレコードだけしかない場合、NetCOBOL実行時にエラーとなりますか?
- NetCOBOL製品として、固定長レコード形式のレコード順ファイルおよび行順ファイルについては、入力ファイルのレコード長のチェックはしていないため、実行時エラーにはなりません。プログラムにてチェックするなどの方法で代替してください。
代替案としては、以下があります。レコード順ファイルの場合
COBOLプログラムでファイルを入力する前に、C言語プログラムによって、ファイルサイズがレコード長の整数倍になっているかをチェックします。
Solaris/Linuxでは、システム関数statによって、ファイルサイズを調べることができます。行順ファイルの場合
プログラムでのファイル定義を、固定長ではなく可変長にして、読み込んだレコードが想定の長さ(今回のご質問の場合なら80Byte)と異なるか、プログラムで判定してください。
読み込んだレコードの長さは、ファイル記述項のRECORD句にDEPENDING ON データ名を指定して調べることができます。
製品・サービス情報 |
|
||||
---|---|---|---|---|---|
アンサー種別 | 技術サポート |