2013-03-21 90 views
1

有沒有人有快速找到字段的COBOL copybook開始位置的方法?例如:Copybook字段開始位置

000100 01 BGG-FILE-REC.               
000200  03 BGG-RCD-KEY.              
000300   05 BGG-DUDENAME   PIC XXXX. 
000400   05 BGG-DUDEADDR   PIC XX. 
000500   05 BGG-HAIRCOLOR   PIC X(71). 
000600   05 BGG-EYECOLOR   PIC X(8). 

的BGG-染髮列在第7欄開始不過,我處理實際文件中有大約250變量共計3400個字節。通過手動計算器來添加和添加PIC值是可怕的,而且在我的有生之年不會發生。當我檢查系統的輸出時,這個數字在vi中是很好的;即BGG-EYECOLOR值是否落在正確的列中?

我可以編寫一個perl腳本來註釋這樣的副本,但在我這樣做之前我想知道是否有人有更平滑的方式來獲得相同的值?

回答

2

如果是用於大型機,則可以使用cb2xml將字帖轉換爲xml (帶字段「開始」)。

或者,您可以使用RecordEditor。將Cobol Copybook導入 RecordEditor(請參閱RecordEditor-Cobol Notes)。 RecordEditor將計算 的字段位置。您可以將RecordEditor-Layout中的字段複製並粘貼到Excell或文本編輯器中。或者,您可以將記錄佈局導出爲Xml。RecordEdityor可用於多種Cobol方言(Mainframe,OpenCobol)。

如果你正在閱讀java中的文件,你應該看看JRecord。 JRecord將允許您使用Cobol Copybook以Java讀取Cobol數據文件。

另外Legstar也許值得一看。 Legstar最初從與在線數據傳輸合作開始,但他們一直在分支。

+0

RecordEditor似乎是一個好球,從最近的問題。否則,如果在大型機數據地圖上,其他編譯器可能有其他選項。 – 2013-03-22 15:42:18

+0

事實上,我在Java中的Unix服務器上,編寫代碼來使用他們的字帖COBOL文件轉換爲我的指導值的位置。然而,這個答案讓我告訴我的主機工作人員他們需要什麼,以及如何獲得它。謝謝! – noogrub 2013-03-22 19:57:53

+0

如果從Java讀取,還應該看看http://jrecord.sourceforge.net/ – 2013-03-22 21:15:36

0

如果您位於大型機上,請使用FileAid的選項8。

+0

我公司是最便宜的廉價的,甚至我們有FileAid ......但是,你是正確的。編譯列表會給出所需的信息,只要它從01級開始。 – mswanberg 2013-03-23 18:08:06

+0

我不相信這是真的。如果副本從大於01的級別開始,並且之前有數據,則整個副本將由其之前的字節數量決定。您可以減去,但如果您僅使用編譯來查看字段偏移量,則確保它從01級開始更容易。 – mswanberg 2015-03-16 23:17:16

+0

當然,在這種情況下,減法是必需的,但並不麻煩。現在使用最新的IBM編譯器,您甚至可以用十進制獲得偏移量。只是讓它太簡單了。無論如何,讓我們收拾一下評論。我不認爲他們在這裏至關重要。 OP不在大型機上,對布魯斯回答後來透露的評論。 – 2015-03-16 23:41:25

0

您擔心排列同一列中的PIC子句有多困難?

打開它在許多Eclipse變種和控制轉變-F或其他之一。

你知道它編譯很好,不管列是什麼,並且已經有近30年了,它們真的不再重要。

低租金的方式是編譯它並剪切&將您的交叉引用列表粘貼到您的字帖上。

0

如果您使用大型機,您可以使用「File aid - view」。 從ISPF主選項菜單轉到

G ==> General Utility F ==> File-Aid Products 1 ==> File-AID 8 ==> VIEW

在屏幕下面的選項會:

Specify Record Layout Dataset to View:         

    Dataset name ===> 'XXXXXX.XXX.XXXX'     
    Member name ===> COPYZXY (Blank or pattern for member list) 

給你的「數據集名稱」和「會員名稱」(數據集的名字:您的PDS和會員名稱:您的複印本名稱)

按下輸入鍵後,您將看到一個描述約 的VIEW LAYOUT屏幕變量名稱,子句,編號,每個變量的開始,結束和長度能夠出現在那本複製書中。

+0

如果OP在大型機上,他們只需查看編譯列表,並告訴他們。 – 2015-03-15 17:34:02