Как можно и нужно организовать эффективный поиск внутри файла
Прога проходит по всем каталогом и находя нужный файл с подходящим расширением заходит внутрь каждого файла. Там происходит поиск заранее заданного текста, и если оно там находиться, то имя файла автоматически включается в список.
Как вы сами видите скорость поиска впрямую зависит от зффективности локального поиска внутри файла.
Если у вас есть быстрый алгоритм поиска поделитесь пожалуйста.
Цитата:
Originally posted by phyton
Если у вас есть быстрый алгоритм поиска поделитесь пожалуйста.
Если у вас есть быстрый алгоритм поиска поделитесь пожалуйста.
Если файл текстовый, его можно считать целиком в строку и потом воспользоваться AnsiString.Pos() (если использовать AnsiString) или же StrScan.
Цитата:
Originally posted by smartsoft
Если файл текстовый, его можно считать целиком в строку и потом воспользоваться AnsiString.Pos() (если использовать AnsiString) или же StrScan.
Если файл текстовый, его можно считать целиком в строку и потом воспользоваться AnsiString.Pos() (если использовать AnsiString) или же StrScan.
Ну вообще то файл текстовый , но можно искать любой файл. А вот насчет AnsiString.Pos()
Надо ли весь файл в буфер скопировать и только потом там искать или впрямь внутри файла сравнивать тексты?
Цитата:
Originally posted by phyton
Ну вообще то файл текстовый , но можно искать любой файл. А вот насчет AnsiString.Pos()
Надо ли весь файл в буфер скопировать и только потом там искать или впрямь внутри файла сравнивать тексты?
Ну вообще то файл текстовый , но можно искать любой файл. А вот насчет AnsiString.Pos()
Надо ли весь файл в буфер скопировать и только потом там искать или впрямь внутри файла сравнивать тексты?
AnsiString ориентируется на длину строки, и кладет на содержимое, поэтому ею можно пользоваться для хранения и поиска любых символов.
Ну, а для того, чтобы произвести поиск при помощи одного вызова Pos(), придется весь файл считать в одну строку. Как это сделать, уже обсуждалось не раз на этом форуме.