用VFP实现输入法的移植
一、使用UCDOS下的万能输入法编码管理器Imdmng.exe(UCDOS5.0以上版本均有),将已编译好的编码字典Wb.imd反编译为UCDOS下的码表格式文件Wb.txt,命令如下:
C:\UCDOS\IMDMNG C:\UCDOS\DRV\WB.IMD C:\UCDOS\WB.TXT
二、将UCDOS的码表格式文件WB.TXT转换为Windows 95/98下码表格式文件,但UCDOS的码表格式文件和Windows 95/98下的码表格文件格式不同。其一,文件头格式不同;其二,正文部分编码与字词的排列方式不同。Windows 95/98要求的格式是字词在前编码在后,中间不留空格。而UCDOS码表正文格式是编码在前字词在后,编码占12个位置,这样编码与字词之间就留有空格。其三,对重码的处理方法不同,Windows 95/98要求所有重码分行表示,而UCDOS则要求重码的字或词放在同一行,重码的字或词之间以空格作为分隔符。其四,Windows 95/98不要求字、词按编码的字母顺序排,而UCDOS要求字、词按编码的字母顺序排。由于上述不同,UCDOS码表格文件变为Windows 95/98码表格式文件,需要经过以下步骤:
1.将UCDOS码表格式文件的文件头去掉。使用字处理软件对文本文件WB.TXT进行编辑,将文件头去掉,只留正文部分,然后存盘即可。
2.将WB.TXT转换成Windows 95/98下的格式文件Wb9x.txt。进入VFP环境编程,程序名为CH.PRG,运行该程序即将Wb.txt转换成Windows 9X的格式文件Wb9x.txt。程序清单如下:
create dbf wb(bm C(12),hzC(24))
appe from c:\ucdos\wb.txt sdf
inde on bm to bm
go top
namef=′C:\ucdos\wb9x.txt′
hand=fcreate(namef)
CRLF=CHR(13)+CHR(10)
**建立Windows 95/98码表文件头
=fwrite(hand,′[Description]′+crlf)&&描述
=fwrite(hand,′Name=五笔′+crlf)&&输入法名称
=fwrite(hand,′MaxCodes=4′+crlf)&&最大码长
=fwrite(hand,″UsedCodes=abcdefghijklmnopqrstuvwxy″+crlf)&&码元表
=fwrite(hand,′WildChar=z′+crlf)&&万能键
=fwrite(hand,′Sort=0′+crlf)&&正文部分
do while .not.eof()
hzl=trim(hz)+′′
do while at(′′,hzl)<>1
kg=at(′′,hzl)
=fwrite(hand,left(hzl,kg-1)+trim(bm)+crlf)
hzl=trim(subs(hzl,kg+1)+′′
enddo
skip
enddo
use
=fclose(hand)
retu
三、在Windows9X系统中,通过在附件下安装的输入法生成器,在弹出的对话框中选“创建输入法”,单击“浏览”,找到Wb9x.txt,再单击“转换”,完成后单击“确定”,再选“创建”即可直接将五笔输入模块挂接在Windows9X系统中使用。