各位高手,比如说我有一个文件夹c:\aa\
里面有三个文件:0001.aaa  ,   0002,aaa   ,   0003,aaa
我现在用
if findFirst(c:\aa\*.aaa,faArchive,searchRec)=0 then
repeat
  ........
until findNext(searchRec)<>0这样操作是为了分别对文件操作!
可是我发现FINDFIRST查文件不是按照0001,0002,0003的文件名前缀的顺序来的,
我要求要按照前缀的顺序查找,怎么办?如果FINDFIRST没有此功能,有没有别的方法?急!谢谢……

解决方案 »

  1.   

    这样吧:procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
      s:string;
    begin
      for i:=0 to 9999 do
      begin
        if i<10 then s:='000'+intTostr(i)
        else if i<100 then s:='00'+intToStr(i)
        else if i<1000 then s:='0'+intTostr(i)
        else s:=intToStr(i);    if fileExists('c:\aaa\'+s+'.aaa') then
        begin
          //here your codes
          //showMessage('c:\aaa\'+s+'.aaa')
        end;  end;
    end;
      

  2.   

    hoho!!!托裤子放屁,白桦的功夫啊!
      

  3.   

    这样吧 先用FindFirst把文件全部找出来
    文件名全部存起来,然后数组排序,让我先试试看
      

  4.   

    这个问题很简单,先全部找出来,存入一个TStringList
    然后再按照你的规则从TStringList里面找,不就行了
      

  5.   

    “按照0001,0002,0003前缀”
    要是00a,00b,00b 难道还在改程序吗?
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var sr:TSearchRec;
        Err:integer;
        s:TStringList;
        i,j:Smallint;
        TempStr:string;
    begin
    s:=TStringList.Create;//查找文件
    Err:=FindFirst('f:\use\yyx\'+'*.*',$37,sr);
    while Err=0 do
      begin
      if (sr.Name[1]<>'.') and (sr.Attr and faDirectory>0) then
         s.Add(sr.Name);
      Err:=FindNext(sr);
      end;//排序 最简单的选择排序 你可以用其他排序方法
    for i:=0 to s.Count-2 do
      for j:=i+1 to s.Count-1 do
        begin
        if s.Strings[i]>s.Strings[j] then
          begin
          TempStr:=s.Strings[i];
          s.Strings[i]:=s.Strings[j];
          s.Strings[j]:=TempStr;
          end;
        end;Memo1.Lines:=s;s.Free
    end;
      

  7.   

    StringList本身就有排序的功能,何必自己再写:s.sort;
      

  8.   

    findnext,findfirst这个函数的功能是按照物理存储顺序寻找文件,如果你希望按照名称顺序来找,好像只能先读取文件名,然后排序,然后找到文件
      

  9.   

    呵呵 我怎么把这个给忘了用s.sort;换一句就行了
    Delphi的快速排序可比选择排序快多了
      

  10.   

    Delphi的快速排序可比选择排序快多了
    ====================================快速排序也不一定比“选择排序”快啊。在某些情况下,快速排序速度还不一定快的过其他的排序