我是这样做的
1.先用输入法生成器程序把全拼输入法的码表文件WINPY.MB转换成一个TXT文件,把这个文件的头信息去掉(该文件的格式参考输入法生成器的帮助)
最后如:
a 啊 阿
.
.
然后通过编程把汉字取出来,并保证该汉字只出现一次
最后如:(一行一个汉字)


.
.
2.利用Word97的一个排序功能(汉字笔划)对生成的文挡排序,具体选择菜单“表格”-》“排序”, 类型当中选择“笔画”即可;
3.最后是排序好了,生成一个数据库文件,每次排序时与库文件进行比较;以上方法有点烦,不过可以,希望对你有启发!

解决方案 »

  1.   

    我有关于按拼音排序的方法,其基本原理就是把汉字第一个字的内码转换成字母.
    function Tform1.GetPYIndexChar(hzchar:string):char;//HZCHAR是单个汉字,
    begin
      case WORD(hzchar[1]) shl 8 + WORD(hzchar[2]) of
           $B0A1..$B0C4:result:='A';
           $B0C5..$B2C0:result:='B';
           $B2C1..$B4ED:result:='C';
           $B4EE..$B6E9:result:='D';
           $B6EA..$B7A1:result:='E';
           $B7A2..$B8C0:result:='F';
           $B8C1..$B9FD:result:='G';
           $B9FE..$BBF6:result:='H';
           $BBF7..$BFA5:result:='J';
           $BFA6..$C0AB:result:='K';
           $C0AC..$C2E7:result:='L';
           $C2E8..$C4C2:result:='M';
           $C4C3..$C5B5:result:='N';
           $C5B6..$C5BD:result:='O';
           $C5BE..$C6D9:result:='P';
           $C6DA..$C8BA:result:='Q';
           $C8BB..$C8F5:result:='R';
           $C8F6..$CBF9:result:='S';
           $CBFA..$CDD9:result:='T';
           $CDDA..$CEF3:result:='W';
           $CEF4..$D188:result:='X';
           $D1B9..$D4D0:result:='Y';
           $D4D1..$D7F9:result:='Z';
         else
           result:=char(0);
      end;
    end;
      

  2.   

    按笔划排序?还是第一次听说!要做什么用?
    如果按拼音排序,那么DELPHI直接就可以做到!如果建立索引,则自动排序!
    lucktoours的方法时取某个汉字的第一个拼音。