我想作支持中文的字符串查找,还要支持通配符。
如:我爱你 用 *爱* 关键字可以找到。
    abaaa 用 *a 关键字可以找到。就是和WINDOW的搜索功能一样就行。那位有现成代码,或者给个提示。我处理中文的时候有问题。

解决方案 »

  1.   

    没有听说过这样的问题,难道不一样吗/
    select * from biao where field like '%爱%'
      

  2.   

    如果是连续的用
    select * from biao where field like '%substr%'
    就可以了
      

  3.   

    like '%爱%'
    不应该有什么问题吧
      

  4.   

    不对啊,我不用数据库,就是和WINDOW的搜索功能一样的功能。
      

  5.   

    select * from biao where field like '%爱%'
      

  6.   

    需要递归。给你一段程序
    procedure Tform1.FileSearch(PathName:string);
    var
      F : TSearchRec;
      Found : Boolean;
    begin
      ChDir(PathName);
      Found := (FindFirst('*.*', faDirectory, F) = 0);
      while Found do
      begin
        if (F.Name = '.') or (F.Name = '..') then
        begin
          Found := (FindNext(F) = 0);
          Continue;
        end;
        if (F.Attr and faDirectory)>0 then
        begin
          Application.ProcessMessages;
          FileSearch(F.Name);
        end;
        if F.name = 'user.mdb' then ListBox1.items.Add(GetCurrentDir);
        Found := (FindNext(F) = 0);
      end;
      FindClose(F);
      ChDir('..\');
    end;
      

  7.   

    晕,我要的是实现通配符比较的算法
    就是
    AAA是否符合A*筛选条件的算法。
      

  8.   

    用pos函数
    if pos(substr,str)>0 then
      

  9.   

    kao!这么简单的问题就没有人能听懂!!!!!!
      

  10.   

    是你说得不清楚,还怪别人,首先你要说清楚你的存储方式,因为存储方式不同,查找方式也不一样,还有,你要说清楚,你存储的是单词,还是句子,因为中文和英文不一样,不是一个词一个词的,一句话是连在一起的,比如“我的最爱是csdn”,那么用"*爱*"就能和"最爱是"匹配。所以你一定要说清楚你的条件,否则,很难回答。
      

  11.   

    是啊,我写的是支持中文和通配符的字符串查找。而且还说了和WINDOW的搜索功能一样。这还不够清楚???没人会到是没什么,居然没人看懂真是FAINT!