2016-07-15 8 views
1

サードパーティベンダーから提供されたcsvファイルをCOBOLアプリケーションにインポートしています。ファイル名は.csv形式で23文字です。これらのファイルは正常にExcel、Word、およびViに正常に読み込まれました。23文字のファイルネームファイルのopenステートメントでエラー94,20

提供されたファイル名を使用してこれらのファイルを開くと、COBOLエラー94,20 - ファイルが見つかりません。これは、SCO OpenServer 5.0.7(Unix)とWindows 7ランタイム環境の両方で発生します。

ファイル名を任意に4文字に短縮すれば、問題なくファイルを開いたり、読み込んだり閉じることができます。

順次入力ファイル名に使用できる文字数にCOBOL制限がありますか?このようなオープンエラーを引き起こす原因は何でしょうか?

私はMicro-focus/ACUCOBOL-GT V7.00コンパイラとACUCOBOL-GTランタイムバージョン5.2.1を実行しています。

答えて

0

古いバージョンのSCO Unix(SCO OpenServerの前身)は、14文字のファイル名の制限があります。ファイルの名前が「something.csv」の場合、「何か」の部分は10文字に制限されていました。

この制限は、OpenServer 5.0.7には適用されません。しかし、使用しているCOBOLがもっと古いバージョンでコンパイルされた場合、またはそれより新しいものの、下位互換性を維持しようとしてファイル名サポートを自主的に制限すると、それが問題になる可能性があります。 13,14,15文字のファイル名に対してテストすることで、これを調べることができます。実際の制限を知るには、一般に、さまざまな長さを調べます。

5.0.7システムにはシステムコールトレーサコマンドtruss(C)が必要です。また、C開発システムがインストールされている場合はトレース(CP)を持つこともできます。 truss how-you-start-a-cobol-program longfilename.csvを実行すると、有用な出力が得られます。実際のシステムコールとシステムエラー番号が表示されます。 trusstraceの両方のOSR5バージョンは適度にフレークであり(異なる方法で)、両方を試してください。出力をファイルに書き出すために、 "-o"フラグのようなものについては、マニュアルページを参照してください。

関連する問題