如何快速查询按拼音排序的4字词字典文件(aa.txt)中是否含某成词?
例如:“呆如木鸡”这个词在按拼音排序4字词字典文件(aa.txt)中是否有?aa.txt中都是4字词!

解决方案 »

  1.   

    File.ReadAllLines
    List.Contains
    否则就要根据首字母查询,
      

  2.   


    Create function [dbo].[fun_getPY](@str nvarchar(4000)) 
    returns nvarchar(4000) 
    as 
    begin 
    declare @word nchar(1)
    declare @PY nvarchar(4000) 
    set @PY=''
    while len(@str)>0 
    begin 
        set @word=left(@str,1)    --如果非汉字字符,返回原字符 
        set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901 
    then ( 
                                select top 1 PY 
                                from 
                                ( 
                             select 'A' as PY,N'驁' as word 
                         union all select 'B',N'簿' 
                         union all select 'C',N'錯' 
                         union all select 'D',N'鵽' 
                         union all select 'E',N'樲' 
                         union all select 'F',N'鰒' 
                         union all select 'G',N'腂' 
                         union all select 'H',N'夻' 
                         union all select 'J',N'攈' 
                         union all select 'K',N'穒' 
                         union all select 'L',N'鱳' 
                         union all select 'M',N'旀' 
                         union all select 'N',N'桛' 
                         union all select 'O',N'漚' 
                         union all select 'P',N'曝' 
                         union all select 'Q',N'囕' 
                         union all select 'R',N'鶸' 
                         union all select 'S',N'蜶' 
                         union all select 'T',N'籜' 
                         union all select 'W',N'鶩' 
                         union all select 'X',N'鑂' 
                         union all select 'Y',N'韻' 
                         union all select 'Z',N'咗' 
                          ) T 
                       where word>=@word collate Chinese_PRC_CS_AS_KS_WS 
                       order by PY ASC 
                              ) 
                          else @word 
                     end) 
        set @str=right(@str,len(@str)-1) 
    end
    return @PY
    end
    goselect [dbo].[fun_getPY]('我是中国人')我这是数据库查询首字母的算法,你看看有用吗。