> Estou desenvolvendo uma aplica��o que implementar� um protocolo
propriet�rio da
> motorola. Acontece que este protocolo utiliza ascII e Hexa no mesmo bloco.
Ex.
> SOH ! COMANDO ! CHECK ! DATA
> ! EOT
> ______!____________!__________________!________________________!_____
> HEXA ASCII ASII
> HEXA HEXA
>
> O que devo fazer para implementar isto? Em outras linguagens usaria
ponteiros,
> mas Java n�o trata ponteiros certo?
>
> Obrigado a quem puer ajudar
>
> Osvaldo
Ol� Osvaldo.
Pense em bytes e n�o em ponteiros. Tanto o HEXA que voc� vai ler, como o
ASCII, s�o no fundo BYTES!!!
Seja l� de onde voc� est� tirando estes dados, (arquivo, socket, etc...)
voc� estar� usando um java.io.InputStream, n�o tem muita sa�da!
Ent�o voc� pode ler os bytes e trat�-los da maneira pe lhe seja pertinente.
Por exemplo, para ler 10 bytes que correspondem a uma string ascii voc� pode
fazer o seguinte:
InputStream is = // n�o sei de onde voc� vai tir�-lo
byte [] rawData = new byte [10];
is.read (rawData);
String data = new String (rawData); // voc� pode passar um segundo parametro
dizendo qual o enconding que voc� est� usando.
Se voc� quiser ler facilmente outros tipos de dados (short (2 bytes) int (4
bytes)) voc� pode usar um java.io.DataInputStream.
De uma olhada na documenta��o sobre isso.
Qualquer problema � s� gritar!!!
Ricardo Munhoz Santiago
Sun certified programmer for the JAVA 2 platform