如何对汉字库文件进行操作(100分)

  • 主题发起人 主题发起人 lili365
  • 开始时间 开始时间
L

lili365

Unregistered / Unconfirmed
GUEST, unregistred user!
有如下的文字内容,如何转换为相应的汉字
0x62 0x11 0x7c 0xfb 0x53 0xf0 0x6e 0x7e 0x52 0x29 0x8f 0xbe 0x96 0xc6 0x56 0xe2 0x9a 0x7b 0x6d 0xf1 0x57 0x33 0x52 0x06 0x51 0x6c 0x53 0xf8 0x4e 0x3a 0x5e 0x86 0x79 0x5d 0x62 0x34 0x5c 0x14 0x4e 0xa7 0x54 0xc1 0x95 0x00 0x55 0x2e 0x8d 0x85 0x4e 0xbf 0x7f 0x8e 0x51 0x43 0x72 0x79 0x4e 0x3e 0x88 0x4c 0x62 0xbd 0x59 0x56 0x6d 0x3b 0x52 0xa8 0x4f 0x60 0x76 0x84 0x53 0xf7 0x78 0x01 0x5d 0xf2 0x4e 0x2d 0x4e 0x8c 0x7b 0x49 0x59 0x56 0x54 0xa8 0x8b 0xe2 0x75 0x35 0x8b 0xdd 0x00 0x31 0x00 0x33 0x00 0x35 0x00 0x31 0x00 0x35 0x00 0x30 0x00 0x34 0x00 0x38 0x00 0x33 0x00 0x34 0x00 0x38
拜托各位
 
你要进行什么操作?你将这些代码成对写入一文件就成了汉字
 
#include <string.h>
#include <stdio.h>
main()
{
int i,aa[]={0x59,0x6F,0x75,0x20,0x61,0x72,0x65,0x20,0x69,
0x6E,0x20,0x4D,0x79,0x20,0x48,0x65,0x61,0x72,0x74,0x21} ;
for(i=0;i<=20;i++)
{
printf("%c",aa) ;
}
}
换掉数组就行了。
 
最后几们好象是个电话号:13515048348
 
在DELPHI中如何实现,给个MODEL
 
//出来的是一堆乱七八糟的字符。最后好像是一个电话号码。
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
s : string;
substr : string;
str : string;
begin
s :='0x62 0x11 0x7c 0xfb 0x53 0xf0 0x6e 0x7e 0x52 0x29 0x8f 0xbe '+
'0x96 0xc6 0x56 0xe2 0x9a 0x7b 0x6d 0xf1 0x57 0x33 0x52 0x06 '+
'0x51 0x6c 0x53 0xf8 0x4e 0x3a 0x5e 0x86 0x79 0x5d 0x62 0x34 '+
'0x5c 0x14 0x4e 0xa7 0x54 0xc1 0x95 0x00 0x55 0x2e 0x8d 0x85 '+
'0x4e 0xbf 0x7f 0x8e 0x51 0x43 0x72 0x79 0x4e 0x3e 0x88 0x4c '+
'0x62 0xbd 0x59 0x56 0x6d 0x3b 0x52 0xa8 0x4f 0x60 0x76 0x84 '+
'0x53 0xf7 0x78 0x01 0x5d 0xf2 0x4e 0x2d 0x4e 0x8c 0x7b 0x49 '+
'0x59 0x56 0x54 0xa8 0x8b 0xe2 0x75 0x35 0x8b 0xdd 0x00 0x31 '+
'0x00 0x33 0x00 0x35 0x00 0x31 0x00 0x35 0x00 0x30 0x00 0x34 '+
'0x00 0x38 0x00 0x33 0x00 0x34 0x00 0x38';
str := '';
substr := '';
for I := 1 to Length(s) do
begin
if s<>' ' then
begin
substr := substr+s;
end
else
begin
str := str+chr(strToInt(substr));
substr := '';
end;
end;
showmessage(str);
end;
 
TO REALLEARNING;
侬的方法不对哎
 
如果是字库中读出的,要看是多少点阵的字库,是16X16还是24X24,如果是16X16则一个汉字是32字节的信息。按以下方式存储 16行16列
字节1 字节2 每个字节代表8个点,这是一行16点
。。。
字节31 字节32 一共 16 行
把每个字节转成2进制显示,0代表无点,1代表有点,就可以看出是什么字了。
如果是24X24点阵,则以下方式存储 24行24列
字节1的第一位 。。。 字节70的第一位 共24列
字节1的第二位 。。。 字节70的第二位
。。。
字节1的第八位 。。。 字节70的第八位
。。。
。。。
字节3的第八位 。。。 字节72的第八位 共24行。
 
不是字库中读出的,是一条短信内容
 
如何将这条短信内容显示为中文
 
最近刚做完这个,看我的笔记里的源码吧,绝对正确,里面有关于字符点阵的详细说明
 
TO 诸葛白痴:
为什么0000010001000000如果是右高位的话排列将是0010 0000(左字节) 0000 0010(右字节),高位是如何判断和定义的呢,请赐教
 
在我的代码里不是写得很清楚吗? 里面有几个高低位转换的函数啊,就是由cabaobao提供
的那几个高低位互转的函数,你看那个解释和代码再自己研究一下,很简单,再不行就自己画些点出来试试
 
我现在是反向操作,该如何
 
何为反向操作,高低位调换? 那也就自己改改converbyte的函数啊,反正就是用二进制的操作而已
 
后退
顶部