2016-07-15 37 views
1

我正在將由第三方供應商提供的csv文件導入到COBOL應用程序中。文件名是.csv格式的23個字符。這些交付的文件已成功正確讀取到Excel,Word和Vi中。在23個字符文件名文件上的打開語句上的錯誤94,20

當我打開任何使用所提供的文件名,我收到了COBOL錯誤94,20這些文件 - 文件未找到。這發生在SCO OpenServer 5.0.7(Unix)和Windows 7運行時環境中。

但是,如果我縮短文件名(任意4個字符),我可以打開,閱讀和關閉文件沒有問題。

是否有允許的順序輸入文件名字符的數量限制COBOL?還有什麼可能導致這樣的開放式失敗?

我正在微焦/ ACUCOBOL-GT V7.00編譯器和ACUCOBOL-GT運行時版本5.2.1。

回答

0

SCO UNIX(SCO OpenServer的前身)的舊版本有一個14個字符的文件名限制。如果你的文件被命名爲'something.csv',那麼'something'部分將被限制爲10個字符。

此限制不應該在OpenServer 5.0.7適用。但是,如果您使用的COBOL是在較舊的版本上編譯的,或者如果它較新,但自願限制其文件名支持以嘗試維持向後兼容性,則可能是問題所在。你可以通過對13,14,15個字符文件名進行測試來探測這個問題 - 一般來說,探測不同的長度來學習實際的限制。

你5.0.7系統應具有系統調用跟蹤命令桁架(C),也可能有微量(CP)(如果你有安裝在C開發系統)。運行truss how-you-start-a-cobol-program longfilename.csv可產生有用的輸出,例如,導致錯誤的實際系統調用和系統錯誤編號。 trusstrace的OSR5版本是中等片狀(以不同的方式),所以試試兩者。閱讀他們的手冊頁,查找「-o」標誌等內容,將輸出寫入文件。