Стартовые позиции поля тетради

У кого-нибудь есть быстрый способ найти стартовые позиции тетради COBOL для полей? Например:

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-HAIRCOLOR начинается в столбце 7. Однако в самом файле, который я обрабатываю, содержится около 250 переменных общим объемом до 3400 байт. Перебирать и добавлять значения PIC с помощью ручного калькулятора отвратительно и не случалось в моей жизни. Число было бы неплохо иметь в vi, когда я проверяю вывод из системы; т. е. попадает ли значение BGG-EYECOLOR в правильный столбец?

Я мог бы написать Perl-скрипт для аннотирования такой тетради, но прежде чем я это сделал, я подумал, есть ли у кого-нибудь более плавный способ получить такое же значение?

5 ответов

Если это для мэйнфрейма, вы можете использовать cb2xml для преобразования тетради в xml (с полем Start).

В качестве альтернативы вы можете использовать RecordEditor. Импортируйте тетрадь Кобола в RecordEditor (см. Примечания RecordEditor-Cobol). RecordEditor рассчитает позиции поля. Вы можете скопировать и вставить поля из RecordEditor-Layout в Excell или в текстовый редактор. В качестве альтернативы вы можете экспортировать макет записи в формате Xml.

RecordEdityor будет работать для нескольких диалектов кобола (мейнфрейм, OpenCobol).

Если вы читаете файлы в Java, вы должны посмотреть на JRecord. JRecord позволит вам прочитать файл Cobol Data на Java с помощью Cobol Copybook.

Также Legstar может стоить посмотреть. Изначально Legstar начинал с сделки с онлайн-передачей данных, но они постепенно расширялись.

Отказ от ответственности: я поддерживаю nilchoud.pythonanywhere.com

Привет, проверьте сайт https://nilchoud.pythonanywhere.com/, Этот сайт разработан специально для анализа тетрадей COBOL.

Например, Ваша входная тетрадь (как упоминалось в вопросе):

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).

Тогда вывод будет:

SR#  LEVEL   FIELD NAME                 PICTURE   TYPE      START      END   LENGTH

0  1  BGG-FILE-REC.                 @         AN            1       85       85
1  3  BGG-RCD-KEY.                  @         AN            1       85       85
2  5  BGG-DUDENAME                  XXXX.     AN            1        4        4
3  5  BGG-DUDEADDR                  XX.       AN            5        6        2
4  5  BGG-HAIRCOLOR                 X(71).    AN            7       77       71
5  5  BGG-EYECOLOR                  X(8).     AN           78       85        8

Я надеюсь, что это решит вашу проблему.

Если вы используете мэйнфреймы, вы можете использовать "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, в котором описаны имя переменной, предложение, номер, начало, конец и длина каждой переменной, присутствующей в этой книге копий.

Если вы находитесь на мэйнфрейме, используйте опцию 8 FileAid.

Вы беспокоитесь о том, как сложно выстроить предложения PIC в одном столбце?

Откройте его в одном из множества вариантов Eclipse и control-shift-F или в любом другом месте.

Вы знаете, что он хорошо компилируется независимо от столбцов, и вот уже почти 30 лет они действительно больше не имеют значения.

Низкая стоимость аренды будет состоять в том, чтобы скомпилировать ее и вырезать и вставить список перекрестных ссылок в вашу тетрадь.

Другие вопросы по тегам