Если можете напишите пожалуйста функцию как искать часть текст в файле использую память (поток) возможно вы все правы только я упертый думаю что все что мы обсуждаем одно и тоже?
Добавлено спустя 55 минут 28 секунд:Вообщем нашел причину иза чего так долго ищет если при поиске не добавлять результат поиска в Synedit ищет так же быстро как и нотпед++
Теперь встал вопрос как записать данные результата.
Просто сохранять в переменную а после работы поиска выводить в synedit
Тормазить поиск так же не будет?
Вообщем все отлично вот результат --> Спасибо всем за общение)!!: Записал результат поиска на видео
https://youtu.be/oJBfdDYORfg- Код: Выделить всё
Var
PachName: string;
SearchFileT: SearchFileThread;
PascalFiles, SL: TStringList;
PascalFiles_1: string;
f, i: integer;
flag: boolean = False;
fileNameSearchResult: TStringList;
.................................................
begin
SL := TStringList.Create;
PascalFiles := TStringList.Create;
fileNameSearchResult := TStringList.Create;
FindAllFiles(PascalFiles, PachName, '*', True);
for f := 0 to PascalFiles.Count - 1 do
begin
if flag then
begin
SL.LoadFromFile(PascalFiles.Strings[f]); //Открываем файл
Form3.ProgressBar1.Position := f;
for i := 0 to SL.Count - 1 do
begin
if pos(UTF8LowerCase(Trim(Form3.ComboBox1.Text)),
UTF8LowerCase(Trim(SL.Strings[i]))) > 0 then
begin
if Trim(PascalFiles.Strings[f]) <> Trim(PascalFiles_1) then
begin
fileNameSearchResult.Add('Файл| ' + PascalFiles.Strings[f]);
PascalFiles_1 := PascalFiles.Strings[f];
end;
fileNameSearchResult.Add('Line ' + IntToStr(i) + ': ' + SL.Strings[i]);
end;
end;
end;
//Выводим результат поиска
Form1.SynEdit1.Text := fileNameSearchResult.Text;
end;