Как преобразовать простую строку Java в EBCDIC с упакованным десятичным форматом
Я должен преобразовать все данные в файл в EBCDIC с упакованным десятичным форматом.
Все данные в файле в простом текстовом формате.
Насколько мне известно, нам нужно будет сначала преобразовать ASCII в EBCDIC Cp1047 или какой-либо другой формат, а затем применить логику / код "упакованный десятичный код" (может быть, я ошибаюсь)
преобразованный формат должен быть похож на "C3 C5 40 F0 C9 F8"(т.е. упакованный десятичный формат EBCDIC)
1 ответ
Упакованный десятичный код (Comp3 в Cobol)
- +123 сохраняется как x'123C '
- -123 сохраняется как x'123D'
- без знака 123 это x'123F'
Есть ли у вас Cobol Copybook???, если у вас есть, смотрите вопрос JRecord. JRecord также имеет
- Программа Csv в Cobol (Конвертируйте файл Csv в Cobol, используя Cobol Copybook)
- Программа Xml-to-Cobol (Преобразование файла Xml в Cobol с использованием тетради Cobol)
Альтернативы JRecord являются
- Cobol2J
- legstar
- различные коммерческие продукты
Примечание: я автор JRecord
Преобразование числа в десятичное число упаковано довольно просто, и есть несколько способов сделать это
Преобразовать в строку
один вариант
- Преобразовать число в строку
- Добавьте знак Символ в конец строки
- Преобразовать строку в байты (шестнадцатеричная строка)
Java-код для преобразования целого числа в десятичный пакет
String val = Integer.toString(Math.abs(value));
if (value < 0) {
val = val.substring(1) + "D"
} else {
val += "C";
}
byte[] bytes = (new BigInteger(val, BASE_16)).toByteArray();
Подобный вопрос
Как конвертировать распакованный десятичный код обратно в COMP-3?