int GetGBKCode_from_sd(unsigned char* pBuffer,unsigned char * c)
{
unsigned char High8bit,Low8bit;
unsigned int pos;
High8bit=*c; /* 取高8位数据 */
Low8bit=*(c+1); /* 取低8位数据 */
pos = ((High8bit-0xb0)*94+Low8bit-0xa1)*2*16 ;
f_mount(0, &myfs[0]);
myres = f_open(&myfsrc , "0:/HZLIB.bin", FA_OPEN_EXISTING | FA_READ);
if ( myres == FR_OK )
{
f_lseek (&myfsrc, pos); //指针偏移
myres = f_read( &myfsrc, pBuffer, 32, &mybr ); //16*16大小的汉字 其字模 占用16*2个字节
f_close(&myfsrc);
return 0;
}
else
return -1;
}
备注:汉字获得区码和位码的算法是这样的:内码高字节 = 区码+A0H = 区码+160 内码低字节 = 位码+A0H = 区码+160 可是为什么在上面的程序中获取偏移量是 pos = ((High8bit-0xb0)*94+Low8bit-0xa1)*2*16 ;???我用的字模软件是字模III增强版 V3.2.3.61.烦请各位知道的大侠不吝赐教,小弟将非常感谢!!!
此帖出自
小平头技术问答
一周热门 更多>