Я отвечаю за преобразование старого пакетного приложения COBOL на основе UNIX, которое было разработано консультантом еще в 1990-х годах, в среду Windows, но все еще в COBOL с использованием Microfocus (Eclipse и т. Д.).
Это довольно простая задача, за исключением одного небольшого сбоя.
Старое приложение никогда не выполняло явной обработки файлов в COBOL. То есть в программах на COBOL нет команд FD, OPEN, READ, WRITE или CLOSE. Вместо этого они написали программу на C, которая будет выполнять одну из этих различных функций на основе переданных ей параметров (включая, помимо прочего, имя файла, длину записи и желаемую функцию).
Я хотел бы переписать эту подпрограмму на COBOL, что потребовало бы очень небольших изменений в преобразуемых основных программах COBOL. То есть он все равно будет вызывать эту подпрограмму, но теперь он будет на COBOL, а не на C.
Но проблема в том, как написать эту подпрограмму, чтобы она могла работать практически с любым файлом. Я бы подумал, что мне нужно пойти по маршруту записей переменной длины, потому что они могут быть буквально любой длины до максимального размера, который должен быть определен, но похоже, что он будет уязвим для ошибок (поскольку он пытается открыть разные типы файлов) .
Есть ли у кого-нибудь опыт или идеи по такой задаче? Если нет, то мне, возможно, придется пойти по прямому пути замены каждого оператора вызова этой подпрограмме конкретной командой COBOL (Open, Read и т. Д.), Которую необходимо выполнить, и, очевидно, FD и SELECT для каждого файла должны быть добавлен в основную программу.
Заранее спасибо.