在DELPHI中,在我的D:\123\中有一些文件 比如 BBC1.jpg BBC2.jpg BBC3.jpg
BBC4.jpg 等,我现在想知道在我的D:\123\下 以BBC?.jpg 的个数。请问大家有
没有好的解决办法。本人属菜菜级请详细一点。

解决方案 »

  1.   

    使用Findfirst,findnext第归查找BBC*.jpg可以得到.
    如果你的文件名都是连续命名的,还可以使用while 循环
    count:= 0;
    while true do
    begin
      if not FileExists(完整的文件名) then break;
      inc(Count);
    end;
      

  2.   

    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;
      

  3.   

    我刚才想起了更好的方法如下:
    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;
      

  4.   

    用FileListBox1.Count吧,如果你不想那麼麻煩的話!在win31的面板中
      

  5.   

    To:dickeybird888(于伟刚)
       好像有一点问题,如果查询为空的时候为什么listbox1.items.count=1?
      

  6.   

    少写了一点东西:
    if (SearchRec.Name <> dot) and (SearchRec.Name <> dotdot) then
    应该改为:
    if ((SearchRec.Name<>'') and (SearchRec.Name<>dot) and (SearchRec.Name<>dotdot)) then
    就可以了