Pergunta

Eu tenho uma string 'raja' que deve ser gravada em um arquivo como dados hexadecimais. Aqui estão os códigos de amostra que me ajudam a descrever o problema. Caso (a)

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

Saída para o arquivo: 52414A41

Mas se usarmos dados Hex diretamente para gravar no arquivo, está funcionando bem caso (b)

name = '52414A41'X
QUEUE name.

Saída para o arquivo: RAJA

Questão: No caso (a) quando a string foi convertida em hexadecimal usando C2X, ele retorna uma sequência de dados hexadecimal e não um dados hexadecimal. Mas no caso (b) como dados hexadecimais foram gravados para arquivar. Minha pergunta é como informar a Rexx Interpreter que a variável 'nome' no caso (a) possui dados hexadecimais e ser escrito como hexadecimal. Espero ter deixado o problema claro. Deixe -me andar de pisar em direção a uma solução.

Foi útil?

Solução 2

Finalmente, eu poderia me resolver o problema descrito no topo. Há uma função interna no Rexx chamado 'Interpret', que nos ajuda a criar comandos dinâmicos Rexx. Aqui está a declaração única, me fez executar o módulo com sucesso:

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

Cria dinamicamente uma instrução rexx:

name_hex = 'name'X

que informará o intérprete de Rexx a string em 'nome' como dados hexadecimais.

Incrível certo! Espero ter deixado você claro .. volte para mim com suas perguntas ..

Outras dicas

Você também pode usar a função X2C

Diga X2C (52414A41)

Exibe Raja

Para a maioria das funções como C2X, revertendo os personagens faz o contrário

ou seja

Diga D2C (C2D (10))

Diga C2D (D2C (10))

Diga X2D (D2X (10))

Todos exibem 10

Eu não acho que você tenha uma forte compreensão do que está tentando fazer aqui ... Execute o seguinte programa Rexx e depois descubra por que ele exibe o que faz. Depois de conseguir isso, você provavelmente poderá encontrar uma solução melhor para o seu problema de hexadecimal/personagem.


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 */
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top