Мы пытаемся написать инструмент на Perl, который, как ожидается, будет анализировать файл данных EBCDIC фиксированной длины и генерировать макет записи, просматривая шестнадцатеричное значение каждого байта в записи.
Предполагается, что каждый файл данных, написанный программой Cobol, исходный код которой у нас отсутствует, может иметь несколько макетов записей.Цель этого инструмента - выполнить миграцию данных (EBCDIC в ASCII), создав макет, который затем будет передан в конвертер.
Проблема в том, что с каждым байтом могут возникнуть сотни перестановок и комбинаций.Я думал, что сравнение шестнадцатеричного значения соответствующего байта в записи ниже текущего может дать нам некоторое представление о том, что это может быть.Но даже в этом случае нет конкретного решения, к которому можно прийти.Решения должны приниматься на каждом этапе, что может повлиять на конечный результат.
Может кто-нибудь сообщить мне, пожалуйста, какие-нибудь из указанных шаблонов, которые я могу найти?Например, для всех COMP-3 каждый кусочек может представлять значение от 0 до 9, и, следовательно, шестнадцатеричное значение байта может быть чем-то вроде [0-9] [0-9].По существу, для переноса данных не нужно беспокоиться о COMPs и COMP-3, поскольку их значение не будет затронуто при переносе.Но выявление полей DISPLAY также оказывается огромной задачей.Может ли кто-нибудь дать какие-то идеи или указать мне направление, которое я могу исследовать дальше?
Любая помощь будет принята с благодарностью.Я действительно застрял здесь.
Спасибо, Адитья.