E ae está o problema, pois não sei como fazer a leitura dos unsigned long, short… Usando DataInputStream, .readLong(), .readShort() não funciona…
Já tentei diversas vezes, pesquisei um monte, mas até agora nada.
Alguém tem ideia de como fazer esta leitura?
Lá em baixo da tabela você encontra a seguinte informação: “Unsigned types use the same mappings as signed types. C enums are usually interchangeable with ‘int’.”
Até mais.
JaVinha1
entanglement:
O programa em C rodou em uma máquina Intel/AMD ou Sparc? Só para ter uma idéia.
O programa rodou máquina Intel, sendo possível editar e salvar novamente, mas originalmente é gerado por uma máquina fotográfica térmica.
E
entanglement
JaVinha=:
]Bom dia, galera do GUJ!!
Estou com um problema para ler um arquivo binário que foi gerado por um programa em C…
E ae está o problema, pois não sei como fazer a leitura dos unsigned long, short… Usando DataInputStream, .readLong(), .readShort() não funciona…
Já tentei diversas vezes, pesquisei um monte, mas até agora nada.
Alguém tem ideia de como fazer esta leitura?
Obrigado!!
É relativamente simples. Digamos que você tenha um método que inverta a ordem dos bytes em um short e em um int (estou chamando, respectivamente, de “ntohs” e “ntohi”).
Tendo esse método, você pode ler esse registro com um DataInputStream assim (digamos que o nome da variável do DataInputStream seja dis) :
Como strings em C normalmente terminam com ‘\0’, então você deve fazer o seguinte, após ler os bytes de “id”:
a) Localizar o byte 0, se disponível.
b) Converter apenas os bytes até o byte 0 (exclusive), usando new String(byte[]).