字库(很想结识搞字库编程的朋友)(30分)

  • 主题发起人 主题发起人 许阳
  • 开始时间 开始时间

许阳

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1.有没有函数,或者是程序能够把内码(十进制)转换为汉字,
例如:xxxxx('45217')=啊。
 
我急需,可加分
 
汉字内码是用16进制表示的,如45217表示成汉字内码为b0a1,其中b0
为‘啊’的区位码10加上a0,a1为‘啊’在10区所在位置01加上a0,所以
要知道内码所代表的汉字,要先把十进制数变成16进制,最简单的把内
码变成汉字的方法是:用二进制方式打开文件,把汉字内码的高低字节
的16进制数写进去。
举例:新建一文本文件,把‘啊’写进去,用debug在dos下打开此文
本文件,可以看到b0a1,所以如果用二进制方式把b0a1写进文本文件,然
后用文本文件方式打开,即得到内码所表示的汉字;
因为我是写单片机汇编程序的,所以没有delphi下源码,根据上面的
思路写出代码应该不难;写出源码给我发一份(只要转换部分),谢谢!
 
我急待解决,如有好答案,两百分奉送
 
建立 form1,在form1上添加edit1,edit2,button1;
用edit1输入十进制数,输入后点button1,在edit2
里即出现十进制数所代表的汉字(当然要在中文操作系统中);
procedure TForm1.Button1Click(Sender: TObject);
var
i:word;
nmh,nml:byte;

begin
i:=strtoint(edit1.text);
asm
mov ax,i
mov nmh,ah
mov nml,al //把十六进制数的高低字节赋给nmh,nml
end;
edit2.Font.Size:=16;
edit2.Font.Color:=clred;
edit2.Text:=char(nmh)+char(nml);//edit2中出现的即汉字
end;
说白了,汉字和英文都是用asc码表示的,只是汉字asc码范围
与英文不一样,中文操作系统会自动把汉字内码转换成可视的汉
字在操作界面中显示出来;
 
谢谢wang_junfan,运行通过
积分下回一并给你(常联系,我的mail,ouxy@263.net)
 
后退
顶部