查找文件时有多个匹配条件时如何写?

abcdefg171459 2008-10-31 05:56:13
findfirst('c:\fsdf\'+'*8301.TXT,*8307.TXT,*8901.TXT,*8905.TXT', faanyfile + fahidden +
fasysfile + fareadonly, searchrec);
就是查找文件名以8301或者8307,或者8901或者8905结尾的.txt文件,在findfirst函数里如何写呢?
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qkhhxkj102 2008-11-01
  • 打赏
  • 举报
回复
要是我就会用一个数组保存要找的文件名,再多数组里读取文件名,查找就好了
mdejtod 2008-11-01
  • 打赏
  • 举报
回复
在查找函数中进行文件名匹配
不过比较麻烦些
fangsp 2008-11-01
  • 打赏
  • 举报
回复
不好意思 上面的代码 有点问题
var
tempStr : String ;
searchRec: TsearchRec;
ret : Integer;
Begin
tempStr := DirName + '*.*';
ret := FindFirst(tempStr ,faAnyFile ,searchRec) ;
while ret = 0 do
begin
if (Pos('8301.TXT',searchRec.Name)>0)
or (Pos('8307.TXT',searchRec.Name)>0)
or (Pos('8091.TXT',searchRec.Name)>0) //这里写你想要的条件
or (Pos('8095.TXT',searchRec.Name)>0) then
begin
memo1.Lines.Add(DirName + searchRec.Name) ;
end;
ret := FindNext(searchRec);
end;
FindClose(searchRec) ;
END;
fangsp 2008-11-01
  • 打赏
  • 举报
回复

var
tempStr : String ;
searchRec: TsearchRec;
ret : Integer;
Begin
tempStr := DirName + '*.*';
ret := FindFirst(tempStr ,faAnyFile ,searchRec) ;
while ret = 0 do
begin
if (Pos('8301.TXT',searchRec.Name)>0)
or (Pos(8307.TXT',searchRec.Name)>0)
or (Pos(8091.TXT',searchRec.Name)>0) //这里写你想要的条件
or (Pos(8095.TXT',searchRec.Name)>0) then
begin
memo1.Lines.Add(DirName + searchRec.Name) ;
end;
ret := FindNext(searchRec);
end;

FindClose(searchRec) ;
END;
swayi21 2008-10-31
  • 打赏
  • 举报
回复
写一个通用的函数,里面用FindFirst, FindNext等及其它处理,
分别把你的8301, 8307等传进去,
一次性传进去的没玩过。

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧