Я делаю приложение, которое заменяет разные слова двух очень похожих говорящих языков. Количество слов по времени, вероятно, достигнет не менее 10.000+. В словах нет больших различий, это почти такие же языки, но существуют различия.Как найти и выбрать все вхождения определенного слова в памятке?
Итак, мне удалось быстро заменить слова в Memo, но я не знаю, как выбрать все замещенные слова в Memo, чтобы можно было увидеть, какие слова заменены. Это возможно?
Это как слова заменены: поддержка
procedure TForm1.TranslateExecute(Sender: TObject);
var i: integer;
S, OldPattern, NewPattern: string;
begin
S:= Memo1.Lines.Text;
for i := 0 to (StrListV.Count - 1) do {StrListV is created earlier, contains words that should be replaced}
begin
OldPattern:= StrListV.Strings[i];
NewPattern:= StrListV1.Strings[i]; {StrListV1 contains new words}
S:= FastStringReplace(S, OldPattern, NewPattern,[rfReplaceAll]);
end;
Memo1.BeginUpdate;
Memo1.Clear;
Memo1.Lines.Text:= S;
Memo1.EndUpdate;
end;
управления редактирования может иметь только один выбор. Думаю, вы ищете способ выделить текст, а не выбирать. Если это так, вы можете использовать для этого расширенный контроль редактирования. – TLama
Да, я ищу способ выделить текст. –
Возможно, сторонний элемент управления редактированием - это то, что вам нужно –