Необходимо конвертировать файл данных Cobol в CSV, Excel - PullRequest
3 голосов
/ 01 ноября 2011

У меня есть файл данных COBOL без расширения файла. Мне нужно преобразовать его в любой тип современного файла данных, такой как упомянутый выше. Я могу открыть файл с помощью Блокнота в Windows.

Вот пример кода внутри

0~      9401131218264194011312182641 >                 ֽ   ֽ                                             A ֵ                @ֽB1993120901758501000232GE93DO   2PECALR                                                                   1MF000232Y      A10000                                                                           @ֽB1993120901758601004407GE93DO  % 2PECALR                                                                   1MF004407Y      A10000                                                                           @ֽB1993120901758701005444GE93DO  `2PECALR                                                                   1MF005444Y      A10000                                                                           @ֽB1993120901758801000008GE93DO   2PECALR                                                                   1MF000008Y      A10000                                                                           @ֽB1993120901758901001518GE93DO  €2PECALR                                                                   1MF001518Y      A10000                                                                           @ֽB1993120901759001000102GE93DO  €2PECALR                                                                   1MF000102Y      A10000                                                                           @ֽB1993120901759101001605LA93LA   2                                                                         2MF001605N      A20000                                                                           @ֽB1993120901759201001076GE93DO  P 2PECALR                                                                   1MF001076Y      A10000                                                                           @ֽB1993120901759301001608GE93DO  % 2PECALR                                                                   1MF001608Y      A10000                                                                           @ֽB1993120901759401007044GE93DO  5 2PECALR                                                                   1MF007044Y      A10000                                                                           @ֽB1993120901759501000329GE93DO P 2PECALR                                                                   1MF000329Y      A10000                                                                           @ֽB1993120901759601000613MM93MS  P 2PECALR                                                                   1MF000613Y      A10000                                                                           @ֽB1993120901759701000516MM94MS   2PECALR   

Я даже не знаю, с чего начать, как это сделать. Любая помощь будет высоко ценится.

Ответы [ 4 ]

3 голосов
/ 02 ноября 2011

То, что у вас здесь есть, на самом деле не является файлом данных COBOL. Это плоский файл данных без наложенной на него структуры. Это, безусловно, может быть написано программой на языке COBOL.

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

0~ 9401131218264194011312182641 > ֽ ֽ A ֵ

и у вас есть несколько записей, каждая из которых начинается с @. Скорее всего, это будет одна запись:

@ֽB1993120901758501000232GE93DO   2PECALR                                                                   1MF000232Y      A10000    

Теперь вам нужна структура. У вас есть доступ к исходному коду COBOL? Без этого (или без копии тетради) я боюсь, что, вероятно, нет способа определить, что эти данные должны означать.

2 голосов
/ 05 декабря 2011

Если вам нужно делать это снова и снова или файл очень длинный, есть две вещи, которые вы можете выбрать из

Напишите программу на языке cobol, которая будет добавлять запятые между полями и создавать новый файл. Затем вы можете открыть этот файл в формате csv в Excel.

OR

Написать макрос Excel. На одном листе укажите структуру, то есть тип поля в одном столбце и длину в другом столбце. Макрос будет читать структуру файла и разбивать текст на несколько столбцов в зависимости от их длины. Вы можете посмотреть на эту ссылку , чтобы узнать, как написать макрос.

0 голосов
/ 14 мая 2012

Мастер FileWizard в RecordEditor / JRecord может выполнять поиск полей Cobol мэйнфреймов в файлах. Результаты FileWizard можно сохранить в файле XML для использования на других языках или использовать функцию копирования для копирования из Ebcdic в фиксированный или CSV-формат Ascii.

В File Wizard * есть некоторая устаревшая документация

0 голосов
/ 11 ноября 2011

Ну, так как это вывод на COBOL, каждая длина поля будет согласована от записи к записи.

Если это одноразовая задача, я бы просто открыл ее в Excel и использовал текст для столбцов и вручную установил точки разделения, чтобы каждое поле помещалось в его собственную ячейку.

Если это не единичный случай, я бы просто изменил программу, которая выдает вывод, чтобы запятую между каждым полем в выходной записи.

...