2015-09-13 4 views
1

Я конвертирую/переношу старую старую программу xbase для клипера на Java. Поскольку старая программа все еще работает, мне нужно быть совместимым при записи данных в Java в базы данных. Он работает очень хорошо, до сих пор.Clipper bin2i и i2bin, необходимые в Java

Для этого мне нужны функции i2bin и bin2i из клипера для работы в Java.

Смотрите здесь i2Bin: http://www.marinas-gui.org/projects/harbour_manual/i2bin.htm

я могу читать машинку письменной i2bin данных с: CDATA является строкой, содержащей в Int закодированный в символьном начиная после первого символа:

char [] array = cData .substring(1).toCharArray(); 
int nLen = (int) array [0]; 

Но я не может написать правильную int-кодировку как char в Java. Так что я получил

int len = 8; 
char clen = (char) len; 

и я получаю '\ b', но только с одним символом. Функция clipper bin2i не может интерпретировать ее правильно. Если добавить пробел в полукокс

String data = clen + " " 

я получить правильную длину bin2i, но это не длина 8 больше. Может быть, он закодирован через Ascii 32?

В любом случае, как я могу сделать это правильно?

С уважением, Peter

+0

My Java не очень хорошо, но вы можете попробовать: 'String data = ((char) (len% 256)) + ((char) ((int) (len/256)% 256)' –

ответ

0

вы хотите:

public byte[] i2bin(short i) 
{ 
byte[] ret = new byte[2]; 
ret[0] = (byte)(i & 0xff); 
ret[1] = (byte)((i>>>8) & 0xff); 
return ret; 
} 

не использовать символ или строку, поскольку они являются локаль/кодировка зависит

Смежные вопросы