procedure TFileSearcher.Search(ASearchPath: String; ASearchMask: String;
  ASearchSubDirs: Boolean; CaseSensitive: Boolean = False);

    while ASearchPath<>'' do begin
      p:=Pos(FPathSeparator,ASearchPath);
      if p<1 then
        p:=length(ASearchPath)+1;
      Dir:=ResolveDots(LeftStr(ASearchPath,p-1));
      Delete(ASearchPath,1,p);


you see that to iterate over all items in char-separated ASearchPath, code modifies str, ie deletes parts of it. It's slow! We should not modify str here. It's easy- save old-index, new-index, and get Copy(n1, n2-n1{+delta}).

Didn't see why ASearchMask is not "const", maybe same bad.

Alexey Torgashin

--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to