中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » [转]如何实现在UCDOS下显示及打印GBK汉字?
作者:
标题: [转]如何实现在UCDOS下显示及打印GBK汉字? 上一主题 | 下一主题
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『楼 主』:  [转]如何实现在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)就可以了,本版块中有下载。




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
doshill
初级用户




积分 166
发帖 26
注册 2004-7-22
状态 离线
『第 2 楼』:  

土问一下
1.GBK汉字非GB部分的内码排布规律(区码和位码的概念已经不适用了吧)?
2.哪里可以找到GBK的16或24点阵字库?
3.GBK汉字在点阵字库中又是按什么顺序排的?
谢谢!

[此贴子已经被作者于2004-8-1 16:04:44编辑过]




2004-8-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: