2015-07-19 1 views
0

У меня есть файл данных мэйнфрейма в двоичном формате с переменными записями. В этом случае копия не работает, и я не знаю конца строки. Как я могу прочитать такой файл?Чтение файла мейнфрейма записи переменной длины

+0

Покажи нам, что вы пробовали до сих пор. – cschneid

+0

Какой язык и на какой платформе вы пытаетесь использовать ??? –

+3

Какая ОС вы используете? Если вы выходите из Mainframe, вы должны найти каждую запись, префиксную четырьмя байтами, X'nnnnn0000 ', где nnnn - двухбайтовый бинарный файл Big Endian, указывающий длину записи. Первая запись будет префикс еще четырьмя байтами аналогичной формы, обозначающей длину блока. Как только блок будет завершен, следующая запись также будет иметь префикс информации управления блоком. Вам нужно посмотреть данные в шестнадцатеричном формате. Если вы этого не понимаете, добавьте образец к вашему вопросу вместе с запрошенными ответами. См. Ссылку редактирования по вашему вопросу. –

ответ

1

Предполагая, что вы читаете этот файл в программе COBOL, работающей на Mainframe, это действительно не проблема. COBOL не записывает выходные данные с нулевым разграничением. Он записывает записи переменной длины с длиной, вложенной в первые два байта из 4-байтовой области префикса, называемой (R) ecord (D) escriptor (W) ord, которая НЕ включена в тетрадь макета записи. Чтобы прочитать такую ​​запись обратно в другой COBOL, вам просто нужно правильно закодированное копирование.