> 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

Responder a