Как записать строку HEX в файл как HEX, используя REXX - PullRequest
1 голос
/ 25 декабря 2009

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

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

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

Но если мы напрямую используем данные HEX для записи в файл, все работает нормально Случай (б)

name = '52414A41'X
QUEUE name.

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

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

Ответы [ 3 ]

2 голосов
/ 30 декабря 2009

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

скажем, x2c (52414A41)

отображает RAJA

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

т.е.

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

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

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

весь дисплей 10

0 голосов
/ 04 января 2010

Я не думаю, что вы хорошо понимаете, что вы пытаетесь сделать здесь ... Запустите следующую программу 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 */
0 голосов
/ 30 декабря 2009

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

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

Динамически создает инструкцию REXX:

name_hex = 'name'X

, который скажет REXX интерпретировать строку в 'name' как данные HEX.

Отлично, верно! Надеюсь, я дал вам понять ... Вернитесь ко мне со своими вопросами ..

...