У меня есть файл, который раньше был в кодировке EBCDIC, но был преобразован в ASCII с помощью dd< /а>. Однако некоторые строки содержат упакованные поля COMP-3, которые я хотел бы прочитать.
Например, строковое представление одной из строк, которые я хотел бы декодировать, выглядит так:
'15\x00\x00\x00\x04@\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x0c777093020141204NNNNNNNNYNNNN\n'
Поле, которое я хотел бы прочитать, определяется PIC S9(09) COMP-3 POS. 3
, то есть поле, которое начинается с третьего байта и имеет длину девять байтов при декодировании (и, следовательно, пять байтов при кодировании, согласно спецификация COMP-3).
Я понимаю спецификацию COMP-3, и я также знаю, что для этой конкретной строки целочисленное значение этого поля должно быть 315
, но я не могу понять, что делать, чтобы на самом деле декодировать поле. Я также не уверен, является ли проблемой тот факт, что файл был преобразован с помощью dd
в ASCII.
Кто-нибудь работал над подобной проблемой раньше, или есть что-то очевидное, что я упускаю? Спасибо!