Question

I have a string 'RAJA' which should be written into a file as HEX data. Here are sample codes which help me to describe the issue. Case(a)

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

Output to the file: 52414A41

But if we use HEX data directly to write into file it's working fine Case(b)

name = '52414A41'X
QUEUE name.

Output to the file: RAJA

Issue: In case(a) when the string was converted into HEX using C2X, it returns a HEX data string not a HEX data. But in case(b) as HEX data was written to file. My question is how to let REXX interpreter know that the variable 'name' in case(a) has HEX data and to be written it as HEX. Hope i made the issue clear. Lemme tread towards a solution.

Was it helpful?

Solution 2

Finally, I could resolve MYSELF issue described top. There is built-in function in REXX called 'INTERPRET', which helps us in building dynamic REXX commands. Here is the single statement, made me run the module successfully:

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

It dynamically creates a REXX statement:

name_hex = 'name'X

which will tell REXX interpreter the string in 'name' as HEX data.

Awesome right! Hope I made you clear.. Do get back to me with your questions..

OTHER TIPS

You could also use the x2c function

say x2c(52414A41)

displays RAJA

For most of the functions like c2x reversing the characters does the reverse

i.e.

say d2c(c2d(10))

say c2d(d2c(10))

say x2d(d2x(10))

all display 10

I don't think you have a strong grasp of what you are trying to do here... Run the following REXX program and then figure out why it displays what it does. Once you have managed that, you can probably come up with a better solution to your hex/character problem.


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 */
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top