Делаю так.
- Код: Выделить всё
const
Cyrillic='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя';
//.....
While Not EOF(SrcFile) do
begin
ReadLn(SrcFile,SrcString);
j:=1;
while j <= Length(SrcString) do
begin
if Pos(SrcString[j],Cyrillic)<>0 then
begin
FormAdd.EditCtxt.Caption:=SrcString;
SubString:=SrcString[j..Length(SrcString)];
FormAdd.EditFind.Caption:=SubString;
FormAdd.ShowModal;
j:=j+FormAdd.EditFind.SelLength;
end;
j:=j+1;
end;
end;
Логика такая. Находим кириллический символ. Копируем, начиная с него и до конца, строку в Edit. В нем выделяем участок нужной длины. Обрабатываем строку дальше, пропуская выделенный участок.
То есть, допустим, есть строка 'Congratulation=Поздравляю с праздником'
Код находит 'П'. Копирует в Edit строку 'Поздравляю с праздником'
Выделяем, например, 'Поздравляю'.
Пропуская этот участок, должны вроде получить 'с праздником'
Однако результат получается несколько неожиданным.
Получается что-то типа 'вляю с праздником'.
Я смутно догадываюсь о причине такого поведения. Но не совсем понимаю, как его побороть.