用VFP实现输入法的移植 许永 2000年 第40期   习惯使用UCDOS下的五笔字型输入法的用户,在系统升级到Windows 95/98后,仍恋恋不舍UCDOS下的五笔字型输入法。其实将UCDOS下的五笔字型输入法移植过来使用是可行的。具体方法如下:   一、使用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系统中使用。