第一个小字库WORD
探索了3年多,终于可以拿出第一个小字库文本编辑软件。这个软件或者可以叫做小字库WORD,用VB编成,模仿WORD。不过还没有完全完成。虽然因为我的编程知识太少,许多功能无法实现,但是无论如何,总算能够在文本中使用任何字库里都没有的字。
我的最终理想是研制真正的汉字电脑,即以汉字作为第一文字,处理中文像英文一样简单方便的电脑。在西文电脑业已普及、微软视窗一统天下的时代,研制这样的电脑更加困难;即使研制出来了,推广也许不容易,因为新东西必然不会十全十美,不一定与已有的信息资源很好兼容。
但电脑汉字存在的问题:缺字、乱码、离不开输入法的万马奔腾等等,三十年来总不能解决。我认为其原因在于:汉字植根于电脑的方法错了,用(大)字库加编码的方式,永远不能根治这些毛病,必须走笔画组字的道路。
自从2004年春完成无字库演示软件以后,我一直想在当前软硬件环境下,搞一个实用的文本编辑软件,首先把我的笔画组字理论用来解决缺字问题。为此,我考虑并试验了以下种种途径:
第一个想到的,是像二十多年前搞DOS汉字系统一样,把当前Windows的字符输入输出截住,嵌入自己的子程序。这本是最好的方法,可以应用在所有现有的软件上。可惜我没有专门学过视窗编程,而要收集和学习海量视窗技术文献,对我这样年龄的人,已不可能。在网上求教,也没有人能告诉我,最后只得放弃。但我还是希望有高人能完成这件事,因为它是能与所有软件兼容的方法。
上面的努力失败后,我就开始用VB来编辑本软件。它的菜单部分可能二年前就做好了,但一开始编写具体内容时,却出现种种问题,很难解决。有些问题,至今仍存在着,虽然用了变通的方法,勉强可以用了,但很别扭(具体的请看使用说明)。
在无字库演示软件中,所有字根和汉字,都是由单个笔画逐级组成的,显示速度慢。有些字形组得很差,感到按各部分的笔画数比例来分配空间,不大对头,似乎应该用线数来计算。但是这要徹底修改组字程序。说实在,我在自己的源程序中虽加了一点注释,但要重新读懂并修改,仍是很头痛的事情。所以另辟蹊径,直接从字库中拷贝字形,避开笔画组字。化了很多时间试验,效果似乎不错,现在的软件就用这样的方法,速度却很慢。
这是什么缘故呢?原来VB绘图有两种状态,即自动刷新(AutoReDraw属性)可取真或假。试验时取非自动刷新,是逐一显示的,感觉很快,但是不能保存,若被别的窗口掩盖过,就没有了,显然不能用。采用自动刷新时,则要等全屏更新好后才呈现,只要该屏含有一两个要组成的字,就慢的不得了。微软自己的WORD,在显示慢的时候,也是逐字显示的,为什么却不怕被其他窗口掩盖?我找不出解决办法,或许只有把组字子程序改用汇编语言提高速度才行。
因为显示英文也是要字库的,原来提的无字库概念不大正确,以后才提出小字库概念。但小字库到底取多小,取那些汉字,一直定不下来。既然组合的汉字显示太慢,只当个别字库里没有,或者一时找不到方法输入的汉字时,才用组字的方式,不是勉强可实用了?这种临时组出的字称为合成字,其他绝大部分仍用字库字。合成字和字库字混用,合成字数量很少,内码长些也无仿,就在两端置隔离字节以资区别。字数统计可报告合成字个数及它们的平均字节数,后者就包括这两字节。这样,实际上可以使用所有大字库里的字,由其他软件编辑的纯文本文件,可用本软件读入,继续插入合成字。用本软件编辑的文件,也可用其他软件显示,只是其合成字将成为一串乱码。
现在的小字库WORD,就是按上面的方式实施的。虽然它只解决了文本文件中的缺字问题,但比起WORD来,应该是很优越的,后者每用一个非字库字,就要附一个图片文件。
不过目前的1.0版还有许多缺陷。其中有些是因为我的编程水平低,没法解决,上面已提及,详细的还可参阅使用说明。提出这些问题,目的还想有高手能够来帮助解决。还有两个问题是要研究的。一个是按线数组字,调整各个字根的结构特性,改进合成字字形;二是压缩字根集到250个,使一个字根只要一个字节。解决这第二个问题可能不大容易:全部字根归并成250个类,在一个合成字中,某类字根到底应该用该类哪个字根,则由程序来鉴别选取。这样解决问题,还可同时解决汉字的排序和检索问题。另外,1.0版还不能将純笔画串正确组出,不能用字库字组字,不能用元笔画组出种种图符,这些功能,只有到以后的版本中逐一增加。
5年前,即2001年11月,我刚在网上提出无字库和笔画组字时,几乎所有网友都持怀疑态度,认为想法虽美,但不能实现。3年后,2004年1月公布了无字库汉字演示软件,再经过3年的努力及愈来愈多的网友的宣传,人们已慢慢能够接受这个理念了。已有许多网友,与我联系,有意参与工作,还有人从英美打电话来。用“无字库”搜索,还可以看到,广东有人以此挂牌融资的。可惜我没有组织能力,不能整合为一股力量,早出成果,造福国人。也有一些好心人,嘱我严守技术秘密,早日申请专利保护。我说,历史上有用的发明创造,虽然被归功于一人,实际上都是许多人努力的结果。我的子女虽年幼,但都已自立,我个人有退休工资,吃喝不愁,争什么专利,真不值得在这上面化精力。我只不过出了这个点子而已,自己又无能力实现,希望有人出来完成它。就是现在这个软件,搞一段落后,也会公布源程序的,现在有人来索取,我也会提供。
2007.2.13
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=6111892