Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi. Прохожусь циклом по Memo1 со StringReplace, но нужно на каждую удачную замену добавить в переменную j +1.

Вячеслав Власов Гуру (3453), закрыт 1 год назад
Пока конструкция находится в таком виде:
for i := 0 to Memo1.Lines.Count - 1 do
begin
Memo1.Lines[i]:=StringReplace(Memo1.Lines[i], CurrSite.Text', 'UpLev', [rfReplaceAll, rfIgnoreCase]);
j:=j+1
end;

Но так переменная будет считать кол-во циклов. Понимаю, что нужно что-то вроде:
"if (StringReplace...", но на этом моменте затупил...
Лучший ответ
Свиньи жарят людей Гуру (2597) 1 год назад
 var 
j: integer;
begin
j := 0;
while pos(CurrSite.Text, Memo1.Text) > 0 do
begin
Memo1.Text := StringReplace(
Memo1.Text, CurrSite.Text, 'UpLev', [rfIgnoreCase]);
j := j + 1;
end;
end;
Вячеслав ВласовГуру (3453) 1 год назад
Хм... логично. Благодарю. :)
Свиньи жарят людей Гуру (2597) Вячеслав Власов,
 // можно и так :)
var 
  j: integer; 
  str: string; 
begin 
  str := Memo1.Text; 
  j := length(str.Split([CurrSite.Text])) - 1; 
  Memo1.Text := StringReplace( 
    Memo1.Text, CurrSite.Text, 'UpLev', [rfReplaceAll, rfIgnoreCase]);
end; 
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (425091) 1 год назад
 //Если на каждую строку, а не на каждую замену, то так:
s:=Memo1.Lines[i];
//Replace goes here
if s.Length<>Memo1.Lines[i].Length then inc(j);
//Количество замен можно тоже выразить через разницу длин, если в одной строке их было несколько
Похожие вопросы