CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

Help~~~!

楼主allanzong(阿狼)2003-08-02 09:29:18 在 Delphi / VCL组件开发及应用 提问

哪位大哥能帮忙写个boolean型的函数,就是时时检测E:\test\目录下是否有*.dat格式的文件,有的话返回true.  
   
   
  急~!  
  谢谢~! 问题点数:50、回复次数:7Top

1 楼bestluo(要学)回复于 2003-08-02 09:34:53 得分 5

funcation   CheckDat(file:string):boolean  
  begin  
      检查文件存在否  
      IF   有   THEN  
          RESULT:=TRUE;  
  END;Top

2 楼jacket008(§优国优民§)回复于 2003-08-02 10:14:52 得分 10

funcation   CheckDat(file:string):boolean  
  var  
    f:   TSearchRec;  
  begin  
  result:=false;    
  if   FindFirst('c:\Downloads\*.dat',   faDirectory,   f)   =   0   then  
    begin  
        repeat  
            //if   (f.Attr   and   faDirectory)<>0   then  
            showmessage('存在'+f.Name+'这个dat文件');  
        result:=true;  
        until   FindNext(f)   <>   0;  
        FindClose(f);  
    end;Top

3 楼zxw111(我现在很闲)回复于 2003-08-02 10:17:05 得分 0

upTop

4 楼FrameSniper(http://naoku.net/blogs/framesniper/)回复于 2003-08-02 10:30:09 得分 30

你可以看看相关参考书籍,或者去Google上看看!我这里给你写3个函数(2个辅助函数和一个主函数).......  
   
  ----------------------------------------------------------------------  
   
  辅助函数一:获取目录全称呼----判断目录是否完整,如果目录最后一个字符不是‘\’则补上这个字符后返回;否则直接返回  
  function   GetDirectoryName(Dir:String):String;  
  begin  
      if   Dir[Length(Dir)]<>'\'   then  
          Result:=Dir+'\'  
      else  
          Result:=Dir;  
  end;  
   
  辅助函数二:  
  function   IsDirNotation(ADirName:String):Boolean;  
  begin  
      Result:=(ADirName='.')   or   (ADirName='..');  
  end;  
   
  主函数:在目录APath中搜索名为AFileName的文件,找到返回True,否则返回False。  
  function   FindFile(APath,AFileName:String):Boolean;  
  var  
      FSearchRec,DSearchRec:TSearchRec;     //TSearchRec是在SysUtils单元定义的一个记录类型,专门用来存放通过FindFirst和FindNext函数搜索到的文件的信息。详细内容可参考Delphi帮助!  
      FindResult:Integer;  
  begin  
      Result:=False;  
      APath:=GetDirectoryName(APath);     //规格化目录参数  
      //此函数在搜索成功后返回0,否则返回错误码。并将搜索到匹配文件信息存放到第三个TSearchRec类型的参数中  
      FindResult:=FindFirst     (APath+AFileName,faAnyFile+faHidden+faSysFile+faReadOnly,FSearchRec);  
      if   FindResult=0   then  
      begin  
          Result:=True;     //在找到的情况下返回True并退出执行  
          Exit;  
      end  
      else  
          try  
              while   FindResult<>0   do   //此循环在FindFirst失败后搜索其余的同一目录下的其他文件  
              begin  
                  //FindNext函数无需指定类似FindFirst的前两个参数,且第三个参数必须是FindFirst中提供的参数。因此只有在调用了FindFirst后才可以调用FindNext  
                  FindResult:=FindNext(FSearchRec);  
                  if   FindResult=0   then  
                  begin  
                      Result:=True;  
                      Exit;  
                  end;      
              end;  
              //在前面没有搜索到的情况下开始对子目录进行查找  
              FindResult:=FindFirst(APath+'*.*',faDirectory,DSearchRec);  
              while   FindResult=0   do  
              begin  
                  if   ((DSearchRec.Attr   and   faDirectory)=faDirectory)   and   not   IsDirNotation(DSearchRec.Name)   then  
                      FindFiles(APath+DSearchRec.Name,AFileName);     //递归调用  
                  FindResult:=FindNext(DSearchRec);     //搜索下一个子目录  
              end;  
          finally  
              FindClose(FSearchRec);     //释放由FindFirst为TSearchRec结构分配的内存  
  end;  
   
  ----------------------------------------------------------------------  
   
  Top

5 楼duxin(小伍)回复于 2003-08-02 11:05:09 得分 5

fs     回答的够详细了   还叫我们来干吗  
  呵呵   申请精华贴?Top

6 楼allanzong(阿狼)回复于 2003-08-02 11:20:01 得分 0

好~谢谢大家~~  
  尤其感谢FrameSniper~~  
  谢谢了Top

7 楼FrameSniper(http://naoku.net/blogs/framesniper/)回复于 2003-08-02 12:47:21 得分 0

不好意思,写的仓促,有个错误的地方:需要把FindClose放在每个Exit后....另外对于While循环的条件判断也可以改成等于的形式....Top

相关问题

  • Help!
  • help
  • Help.....
  • help!!!!
  • help!!!!!!!!
  • help!!!!!!!!!!!!!!!!!!!
  • help !!!!!!
  • HELP!!!!!!!!!!
  • HELP:)
  • help.............

关键词

  • 函数
  • 文件
  • findresult
  • dsearchrec
  • findfirst
  • apath
  • findnext
  • fsearchrec
  • tsearchrec
  • fadirectory

得分解答快速导航

  • 帖主:allanzong
  • bestluo
  • jacket008
  • FrameSniper
  • duxin

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo