用VFP实现输入法的移植

Author: 许永 Date: 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系统中使用。