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