It may be faster to search using Filler.dll that comes with VFP and then process only files with matches.
oFiler = CREATEOBJECT('Filer.FileUtil')
oFiler.SearchPath = "H:\temp"
oFiler.FileExpression = '*.txt'
oFiler.SearchText1 = lcSearchText
oFiler.SubFolder = .T.
? oFiler.Find(0)
? oFiler.Files.Count
FOR i=1 TO oFiler.Files.Count
? oFiler.Files.Item(i).Name
? oFiler.Files.Item(i).Path
ENDFOR
>Who can offer the most efficient (i.e. fastest) code to accomplish the following?
>
>I need to search 3,000 ascii text files spread among approximately 20 sub-dirs. The files might contain 200-300 lines, bu I only need to search the first 7 lines of each file for a short keyword that the user will enter into a textbox. I report all matches into a listbox.
>
>My current method opens the file for an ascii read, then "for x= 1 to 7" and use the ATC() function to look for a match on each read line. It works, but it's kinda slow, just becuase there are so many files.
>
>I will post my code when I get to work on Monday, and you can critique it.
>
>Thanks.
--sb--