Как записать строку HEX в файл в формате HEX с помощью REXX

StackOverflow https://stackoverflow.com/questions/1960539

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть строка «RAJA», которую следует записать в файл в виде HEX-данных.Вот примеры кодов, которые помогут мне описать проблему.Случай(а)

name = 'RAJA'   
name = C2X(name) /* Hex value = '52414A41' */
QUEUE name.

Вывод в файл: 52414A41

Но если мы используем шестнадцатеричные данные непосредственно для записи в файл, это работает нормально (b)

name = '52414A41'X
QUEUE name.

Вывод в файл: RAJA

Проблема: В случае (а), когда строка была преобразована в HEX с использованием C2X, возвращается строка данных HEX, а не данные HEX.Но в случае (b) данные HEX были записаны в файл.Мой вопрос заключается в том, как сообщить интерпретатору REXX, что переменная «имя» в случае (а) имеет данные HEX и записать ее как HEX.Надеюсь, я прояснил проблему.Позвольте мне двигаться к решению.

Это было полезно?

Решение 2

Наконец-то я смог решить проблему СЕБЯ, описанную выше.В REXX есть встроенная функция под названием INTERPRET, которая помогает нам создавать динамические команды REXX.Вот единственный оператор, который позволил мне успешно запустить модуль:

INTERPRET name_hex "= '" || name || "'X"

Он динамически создает оператор REXX:

name_hex = 'name'X

который сообщит интерпретатору REXX строку в «имени» как данные HEX.

Потрясающе, правда!Надеюсь, я вам ясно объяснил..Вернитесь ко мне со своими вопросами..

Другие советы

Вы также можете использовать функцию x2c

скажем x2c(52414A41)

отображает РАДЖА

Для большинства функций, таких как c2x, перестановка символов делает обратное.

то есть

скажем, d2c(c2d(10))

скажем c2d(d2c(10))

скажем x2d(d2x(10))

все отображать 10

Я не думаю, что вы хорошо понимаете, что вы здесь пытаетесь сделать...Запустите следующую программу REXX и выясните, почему она отображает то, что делает.Как только вам это удастся, вы, вероятно, сможете найти лучшее решение вашей проблемы с шестнадцатеричным/символьным кодом.


name = 'RAJA'
say name            /* RAJA */
name = C2X(name)
say name            /* 52414A41 */
name = X2C(name)
say name            /* RAJA */
name = '52414A41'x
say name            /* RAJA */
name = X2C('52414A41')
say name            /* RAJA */
name = '52414A41'
INTERPRET "name = '" || name || "'X"
say name            /* RAJA */
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top