Замена слова на слова с нумерацией
База такого типа:
Text 01.02 Text 03.01
Text 01.02 Text 03.01
Text 01.02 Text 03.01
Нужно заменить слово Text на: Text1, Text2, Text3 и так далее. И на выходе результат:
База такого типа:
Text1 01.02 Text2 03.01
Text3 01.02 Text4 03.01
Text5 01.02 Text6 03.01
Делал вот так но не срабатывает.
s := StringReplace(s, 'Text', 'Text' + IntToStr(i), [rfReplaceAll, rfIgnoreCase]);
Ответы (1 шт):
Автор решения: zed
→ Ссылка
Вот так должно сработать:
s := StringReplace(s, 'Text ', 'Text' + IntToStr(i) + ' ', [rfIgnoreCase]);
- добавил в шаблоне пробел;
- удалил замену всех вхождений;
- добавил пробел в замене.
Пример использования:
procedure DoTest;
var
i: Integer;
s1, s2: string;
begin
s1 :=
'Text 01.02 Text 03.01' + #13#10 +
'Text 01.02 Text 03.01' + #13#10 +
'Text 01.02 Text 03.01';
i := 1;
repeat
s2 := StringReplace(s1, 'Text ', 'Text' + IntToStr(i) + ' ', [rfIgnoreCase]);
if s1 <> s2 then begin
s1 := s2;
Inc(i);
end else begin
Break;
end;
until False;
Writeln(s2);
end;