![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Всем доброго дня!
Впервые пытаюсь писать программу на Delphi и ни как не получается последняя часть. Имеется файл .txt в котором записано несколько словосочетаний, каждое в новой строке. И имеется второй файл также .txt в котором произвольный текст. Путь к файлам определён через переменные. Нужно написать программу, которая считывает эти 2 файла и если во втором файле (произвольный текст) находиться совпадение хоть по 1 из словосочетаний (находит совпадение по 1 из строке) из первого файла, выводиться сообщение "Найдено". В противном случае "Не найдено". |
|
#2
|
|||
|
|||
|
Код:
function HasMatches(ATextFile, APatternFile : String; ACaseSensitive : Boolean = False) : Boolean;
var
slText, slPattern : TStringList;
I : Integer;
begin
Result := False;
slText := TStringList.Create;
slPattern := TStringList.Create;
Try
slText.LoadFromFile(ATextFile);
slPattern.LoadFromFile(APatternFile);
If Not ACaseSensitive Then
Begin
slText.Text := AnsiUpperCase(slText.Text);
slPattern.Text := AnsiUpperCase(slPattern);
End
For I := 0 To slPattern.Count-1 Do
Begin
Result := Pos(slPattern[i],slText.Text) > 0;
If Result Then Break;
End;
Finally
slText.Free;
slPattern.Free;
End;
end; Не найдет совпадение, если искомое выражение "разбито" по разным строкам. Если надо - то надо в slText.Text заменить все переводы строк на одиночнык пробелы. |
|
#3
|
|||
|
|||
|
Спасибо, завтра попробую подогнать этот код.
Ничего не будет разбито, поэтому код должен подойти. Отпишусь сразу как опробую. |
|
#4
|
|||
|
|||
|
Прошу прощения, в Delphi ещё плохо разбираюсь.
Можете пожалуйста подправить код. Находиться в самом конце. Путь к файлам в переменных: SignatureFileName - файл с тем что нужно искать, CheckFileName - проверяемый файл. 1, 2 и 3 это файлы с произвольным текстом. Если найдёт хоть 1 строку из искомых должно вывести сообщение "Найдено". Если нету, то "Не найдено". Ссылка на Яндекс диск с программой. |