Domanda

ho una stringa 'RAJA' che dovrebbe essere scritto in un file come dati HEX. Qui ci sono esempi di codice, che mi aiutano a descrivere il problema. Caso (a)

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

output al file: 52414A41

Ma se usiamo i dati HEX direttamente di scrivere in un file è bene lavorare Caso (b)

name = '52414A41'X
QUEUE name.

output al file: RAJA

Problema: Nel caso in cui (a) quando la stringa è stata convertita in HEX utilizzando C2X, restituisce una stringa di dati non HEX un dato HEX. Ma nel caso (b) come dati HEX è stato scritto in un file. La mia domanda è come lasciare REXX interprete sapere che il 'nome' variabile nel caso in cui (a) ha dati esadecimali e per essere scritto come HEX. Spero di fatto il problema chiaro. Lemme percorrere verso una soluzione.

È stato utile?

Soluzione 2

Infine, ho potuto risolvere io stesso all'inizio Problema descritto. V'è la funzione built-in in REXX chiamato 'INTERPRETARE', che ci aiuta nella costruzione dinamica REXX comandi. Ecco la singola istruzione, mi ha fatto correre il modulo con successo:

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

Si crea dinamicamente una dichiarazione REXX:

name_hex = 'name'X

che dirà REXX all'interprete la stringa in 'nome' come dati HEX.

Impressionante giusto! Spero ti ho fatto chiaro .. Non tornare a me con le vostre domande ..

Altri suggerimenti

È anche possibile utilizzare la funzione X2c

dire X2c (52414A41)

visualizza RAJA

Per la maggior parte delle funzioni come C2X invertendo i caratteri fa l'inverso

cioè.

dire D2C (C2D (10))

dire C2D (D2C (10))

dire X2D (D2X (10))

tutto display da 10

Non pensi di avere una forte comprensione di ciò che si sta cercando di fare qui ... Eseguire il seguente programma REXX e quindi capire perché mostra ciò che fa. Una volta che avete gestito che, probabilmente si può trovare una soluzione migliore per il vostro problema esadecimale / carattere.


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 */
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top