标题: [转]如何实现在UCDOS下显示及打印GBK汉字?
[打印本页]
作者: Wengier
时间: 2003-5-6 00:00
标题: [转]如何实现在UCDOS下显示及打印GBK汉字?
本文是一个介绍如何在DOS下实现GBK汉字显示打印的方法说明.过程有些复杂,一般用户无法享用!
现在的中文汉字系统中都没有实现如何在DOS下实现GB库中没有的汉字的显示及打印的方法或程序。本文即引导大家如何去实现此一功能:
本人由于经常制作“易经类”,及“姓名学类”软件,经常接触到不能实现的汉字显示问题,如斌下有贝的YUN字,女旁加后的HOU字等。如果汉字少,还能用自造字的方式解决,如果多的时候怎么办呢?
经过长期的试验,终于找到了一个完美的解决方案,特点是:
1.可以显示2倍GB字库数,即显示2*6370=12740个字以上。我将此种字库称为UCDOS下的GBK字库。要求是对应于WIN95下的GBK字库,从而易于用软件查找更换法升级到WINDOWS下。
2.可以打印:如遇到GBK字只能按“PRINTSCREEN”一个键即可以打印屏幕的方式打印文字。PRINTSCREEN键有存在于键盘右上角的一个键。
3.用于DOS下,UCDOS下,中国龙等汉字系统下,编程语言为王特MIS5.0,FOXPRO2.5 FOR DOS。
即本显示方法是用FOXPRO调用王特MIS中提供的二进制文件BIN以对16点阵及24点阵同时操作显示于屏幕上。
说明:王特MIS5.0是大连五特公司开发的数据库自动生成系统,功能十分强大,界面十分友好,是仿WINDOWS的界面。编程也十分的方便。16点阵与24点阵同屏时可以打印屏幕。此外,它还可以对屏幕下方的第25行进行操作,所以还可以用编程的方式实现GBK字符集汉字。其他强大的功能请看其说明书。
具体实现的方法是这样的:
在FOXPRO下使用BIN二进制文件调用16点阵字库,如遇难字(GB库中没有,而GBK中有的)时调用24点阵汉字库显示。
一.编程技巧为:
1.在程序中如何自动识别文本中是否含有24点阵GBK字,这可以使用一个标记来标明即可。
例如有一个TXT文件,其中所有GBK字前都有一个~标记;我用FOXPRO语言中的读文本命令读入此行并分析,当查到出现此标记时,下一个字即调用24点阵显示。用程序实现具体定位。
2.可以直接用编程的方法显示24点阵字,语句为:CALL VGA WITH "Y032032觫"
请运行例子:NAME.PRG
3.使用第25行对GBK汉字进行录入操作:
例:当要录入GBK汉字时,使用字符型输入函数显示在第25行,要求输入汉语拼音或五笔字型,当输入为英文时在码表数据库中查找此字,如有即显示在第25行,并将字调用24点阵显示到文本位置中即可。
二.显示技巧与制作字符集技巧:
1.由于在王特MIS中16点阵与24点阵显示不一样大,可以使用UCDOS提供的MKHZ.EXE程序对24点阵字库定制,让汉字填充在16*16点中,多余的地方空下来,这样大字即转为小字,与16点阵字库一样大了。
2.制作字符集技巧为:
上述仅为改24点阵,为何不直接定制一个16点阵GBK字库,以后将此点阵字库一次性用程序实现写入24点阵不是更快一些吗?以下是实现过程:
新建一个目录用于存放HZK16HZK24S副本,将UCDOS下的HZK16及HZK24S字库文件拷贝到新目录下备用。
用UCDOS提供的MKHZ.EXE打开此HZK16文件,改所有汉字为GB库中没有的汉字,存盘后将此16点阵字库用程序实现一次性写入24点阵字库文件HZK24S宋体文件中。最后一定要将此HZK24S更换回UCDOS系统下。
经过以上就得到了三个有用的字库文件:
HZK16: 只显示16点阵GB汉字的字库。
改过的HZK16,只显示16点阵GBK汉字的字库。
及改过的HZK24S,只显示16点阵GBK汉字的24点阵字库。
最好GBK汉字有一个规律,可以与WIN98下的GBK汉字对应,以便于快速
升级到WIN95下面。
注意:王特MIS下有一个HZK16文件,及一个HZK24S文件,一定要将此HZK24S文件换为改过的HZK24S,否则不能显示GBK汉字。
UCDOS下有HZK16及HZK16F,可以更换为繁体字与简体字。
建议将改过的HZK16最好改名为HZK16G文件保存于UCDOS下备用。
即要想查阅GBK汉字时要更换此文件到HZK16中。而原HZK16再作一个副本HZK16J也存于UCDOS目录下备用。建议使用繁体16点阵字库与改过的24点阵字库进行配合使用。
说明一下,对于普通用户,要在DOS下支持GBK汉字的话,用AW97(CJKDOS)就可以了,本版块中有下载。
作者: doshill
时间: 2004-8-1 00:00
土问一下
1.GBK汉字非GB部分的内码排布规律(区码和位码的概念已经不适用了吧)?
2.哪里可以找到GBK的16或24点阵字库?
3.GBK汉字在点阵字库中又是按什么顺序排的?
谢谢!
[此贴子已经被作者于2004-8-1 16:04:44编辑过]