2017-03-04 48 views
0

我們可以編寫一個shell腳本來查找cobol程序中數組的大小,例如數組的最大大小以及填充多少數組的大小。Shell腳本查找cobol程序的數組大小

+0

請顯示一些示例輸入代碼。並不是每個人都會說cobol。 –

+0

歡迎來到stackoverflow.com。請花一些時間閱讀[幫助頁面](http://stackoverflow.com/help),尤其是名爲[「我可以在這裏詢問什麼主題?」]的章節(http://stackoverflow.com/help/討論話題)和[「我應該避免問什麼類型的問題?」](http://stackoverflow.com/help/dont-ask)。請參閱[tour](http://stackoverflow.com/tour)並閱讀[如何提出良好問題](http://stackoverflow.com/help/how-to-ask)。最後,請學習如何創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – cschneid

+0

@Prashanth:給出的答案是否「爲你工作」?如果是,請考慮將其標記爲「已接受」。如果沒有:是否缺少具體的東西? –

回答

5

問題1:我們可以通過某些編程語言(在本例中爲COBOL)通過某些東西(在本例中是shell腳本)找到最大數組嗎?

回答:不 - 通常你會有一個動態訪問(由一個變量訪問),如果不用所有可能的輸入運行程序,知道使用了多少是不可靠的。

問題2:我們可以編寫一個shell腳本來查找某些COBOL程序中的數組大小嗎?

答:是的,如果你不使用2002以上OCCURS DYNAMIC(其中DEPENDING ON將動態設置大小)和不使用IBM擴展OCCURS UNBOUNDED(其中DEPENDING ON用於定義大小和外部分配是必要的)。這留下array OCCURS [min [TO]] max。 只有grep(或findstr,如果您在Windows上鎖定)OCCURS,它將具有最大大小。因爲它可能在一個新的行上,你需要在檢查之前刪除換行符(例如tr '\n\ ' ',如果這些文件可能包含DOS換行符,則需要額外的tr '\r\ ' ')。由於您可能有內嵌評論,因此您需要先更換所有評論。根據格式(我假定爲固定形式的參考格式),您必須首先刪除每行的非代碼部分,並照顧連續行。 如果您有選擇,使用編譯器預處理源代碼可能會更容易(我曾使用免費的GnuCOBOL編譯器預處理一次類似的代碼調查),甚至可以使用源代碼清單的符號表,if它提供了這個(GnuCOBOL確實有它)。在這種情況下,這可以歸結爲非常簡單的grep