使用Findfirst,findnext第归查找BBC*.jpg可以得到. 如果你的文件名都是连续命名的,还可以使用while 循环 count:= 0; while true do begin if not FileExists(完整的文件名) then break; inc(Count); end;
procedure TForm1.Button1Click(Sender: TObject); var SearchRec:TSearchRec; ext,AppPath:string; dot,dotdot:TFileName; i,j:integer; begin listbox1.Items.Clear; AppPath:='d:\test\'; ext:='*.JPG'; FindFirst(AppPath+ext,faAnyFile,SearchRec); dot := '.'; dotdot := '..'; if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then listbox1.Items.Add(SearchRec.Name); while FindNext(SearchRec)=0 do if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then listbox1.Items.Add(SearchRec.Name); //这样listbox1中为所有的.jpg文件名称 j:=0; for i:=0 to listbox1.listbox1.Items.Count-1 do begin if Pos('BBC',listbox1.Items.Names[i])>0 then j:=j+1; end; //j为你需要的结果 end;
我刚才想起了更好的方法如下: procedure TForm1.Button1Click(Sender: TObject); var SearchRec:TSearchRec; ext,AppPath:string; dot,dotdot:TFileName; begin listbox1.Items.Clear; AppPath:='d:\test\'; ext:='BBC*.JPG'; FindFirst(AppPath+ext,faAnyFile,SearchRec); dot := '.'; dotdot := '..'; if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then listbox1.Items.Add(SearchRec.Name); while FindNext(SearchRec)=0 do if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then listbox1.Items.Add(SearchRec.Name); //listbox1.items.count为你需要的结果 end;
少写了一点东西: if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then 应该改为: if ((SearchRec.Name<>'') and (SearchRec.Name<>dot) and (SearchRec.Name<>dotdot)) then 就可以了
如果你的文件名都是连续命名的,还可以使用while 循环
count:= 0;
while true do
begin
if not FileExists(完整的文件名) then break;
inc(Count);
end;
var
SearchRec:TSearchRec;
ext,AppPath:string;
dot,dotdot:TFileName;
i,j:integer;
begin
listbox1.Items.Clear;
AppPath:='d:\test\';
ext:='*.JPG';
FindFirst(AppPath+ext,faAnyFile,SearchRec);
dot := '.';
dotdot := '..';
if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then
listbox1.Items.Add(SearchRec.Name);
while FindNext(SearchRec)=0 do
if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then
listbox1.Items.Add(SearchRec.Name);
//这样listbox1中为所有的.jpg文件名称
j:=0;
for i:=0 to listbox1.listbox1.Items.Count-1 do
begin
if Pos('BBC',listbox1.Items.Names[i])>0 then
j:=j+1;
end;
//j为你需要的结果
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec:TSearchRec;
ext,AppPath:string;
dot,dotdot:TFileName;
begin
listbox1.Items.Clear;
AppPath:='d:\test\';
ext:='BBC*.JPG';
FindFirst(AppPath+ext,faAnyFile,SearchRec);
dot := '.';
dotdot := '..';
if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then
listbox1.Items.Add(SearchRec.Name);
while FindNext(SearchRec)=0 do
if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then
listbox1.Items.Add(SearchRec.Name);
//listbox1.items.count为你需要的结果
end;
好像有一点问题,如果查询为空的时候为什么listbox1.items.count=1?
if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then
应该改为:
if ((SearchRec.Name<>'') and (SearchRec.Name<>dot) and (SearchRec.Name<>dotdot)) then
就可以了