Einzelnen Beitrag anzeigen

rantanplan99
(Gast)

n/a Beiträge
 
#4

Re: Fehler im Verzeichnis suchen Algo

  Alt 17. Jul 2004, 16:58
If und While ist nicht Suppe in diesem Fall wegen dem Break

weil mit While wird bei Break nur die While schleife abgebrochen und es wird weitergesucht. Bei einem If unterbricht Break die repeat schleife, und die willst du ja unterbrechen.

Und was ich vorhin vergessen habe, nach dem FindPath sollte auch ein Break stehen was Result <> '' ist.

Delphi-Quellcode:
function FindPath(ToBeFound, Path : string) : string;
var
  ASearchRec : TSearchRec;
begin
  Result := '';

  if Path[Length(Path)] <> '\then
    Path := Path + '\';

  if FindFirst(Path + '*.*', faDirectory, ASearchRec) = 0 then
  begin
    repeat
      if ((ASearchRec.Attr and faDirectory) = faDirectory) and
         (ASearchRec.Name <> '..') and
         (ASearchRec.Name <> '.') then
      begin
        if CompareText(ToBeFound, ASearchRec.Name) = 0 then
        begin
          Unit1.Form1.ListBox1.Items.Add(BuildFileName(Path, ASearchRec.Name));
          Result := BuildFileName(Path, ASearchRec.Name);
          Break;
        end
        else
        begin
          Result := FindPath(ToBeFound, BuildFileName(Path, ASearchRec.Name));
          if Result <> 'then Break;
        end;
      end;
    until FindNext(ASearchRec) <> 0;
    FindClose(ASearchRec);
  end;
end;
  Mit Zitat antworten Zitat