Я пытаюсь преобразовать поля EBCDIC COMP-3 в значения ASCII, но это не работает. Но двоичные поля COMP-3 можно преобразовать в значения ASCII. Пожалуйста, помогите мне понять, возможно ли это или нет? Для меня подходит даже использование любой другой библиотеки java. Я пробовал и искал, но конкретного ответа не нашел.
Обновление:
В моем предыдущем бинарном файле должен быть тот, который будет работать. Это то, что я получил в качестве ответа, но не было ясности относительно EBCDIC COMP-3.
КОПИЯ:
001700 01 EMP-RECORD.
001900 10 EMP-NO PIC 9(10).
002000 10 EMP-NAME PIC X(30).
002100 10 EMP-ADDRESS PIC X(30).
002200 10 EMP-SALARY PIC S9(8)V9(2) COMP-3.
002200 10 EMP-ZIPCODE PIC 9(4).
Двоичный файл COMP-3: можно преобразовать
ËÍ>ÁÁ% ,Í_/Ê Ê Â/>Å/%?ÊÁ Á~ ¢|ëá&ç ïçñèá ãñá<à ÊÊ>
EBCDIC COMP-3: преобразование невозможно
0000001001suneel kumar r city e¡5671
Программа:
public static void main(String args[]) throws Exception {
String salesFile = "empcompnewbinary.txt";
String copybookName = "EMPCOPYBOOK.txt";
AbstractLine saleRecord;
int fileStructure = Constants.IO_FIXED_LENGTH;
CobolIoProvider ioProvider = CobolIoProvider.getInstance();
AbstractLineReader reader = ioProvider.getLineReader(fileStructure, Convert.FMT_MAINFRAME,
CopybookLoader.SPLIT_NONE, copybookName, salesFile);
while ((saleRecord = reader.read()) != null) {
System.out.print(saleRecord.getFieldValue("EMP-NO").asString() + "-"
+ saleRecord.getFieldValue("EMP-NAME").asString() + "-"
+ saleRecord.getFieldValue("EMP-ADDRESS").asString() + "-"
+ saleRecord.getFieldValue("EMP-SALARY").asDouble() + "-"
+ saleRecord.getFieldValue("EMP-ZIPCODE").asString());
}
reader.close();
}