DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: zjhnzgw
今日帖子: 4
在线用户: 17
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 wonder80 (刺客) ★☆☆☆☆ -
普通会员
2004/5/2 11:17:38
标题:
如何实现全文检索??请教高手 浏览:1015
加入我的收藏
楼主: 如何实现全文检索??请教高手

我现在有个题目,要求搜索一些文件,比如最简单的txt文件,通过输入一些关键字就可以知道这些文件中有哪些是包含这些内容的??(不需要打开这些文件)
另外,如果要进行扩展,比如是doc,zip,rar文件,如何实现??
请给出具体方案,我是个菜鸟
我的email:wonder80@eyou.com
欢迎高手
----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2004/5/2 11:23:21
1楼: 你可以改改就能满足你的要求了。

function TMainForm.GetDirectoryName(Dir: String): String;
begin
  if Dir[Length(Dir)]<> '\' then
    Result := Dir+'\'
  else
    Result := Dir;
end;

procedure TMainForm.FindFiles(APath: String);
var
  FSearchRec,
  DSearchRec: TSearchRec;
  FindResult: integer;

  function IsDirNotation(ADirName: String): Boolean;
  begin
    Result := (ADirName = '.') or (ADirName = '..');
  end;

begin
  APath := GetDirectoryName(APath);
  FindResult := FindFirst(APath+FFileName,faAnyFile+faHidden+
                          faSysFile+faReadOnly,FSearchRec);
  try
    while FindResult = 0 do
    begin
      FlatListBox1.Items.Add(LowerCase({APath+}FSearchRec.Name));
        FindResult := FindNext(FSearchRec);
    end;
    FindResult := FindFirst(APath+'*.*', faDirectory, DSearchRec);

    if FlatCheckBox1.Checked=True then
    begin
      while FindResult = 0 do
      begin
        if ((DSearchRec.Attr and faDirectory) = faDirectory) and not
          IsDirNotation(DSearchRec.Name) then
          FindFiles(APath+DSearchRec.Name);
          FindResult := FindNext(DSearchRec);
      end;
    end;
  finally
    FindClose(FSearchRec);
  end;
end;
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行82.03125毫秒 RSS