procedure TForm1.Button1Click(Sender: TObject);
var
b,c: integer; //回圈用
begin
for c:=0 to Memo3.Lines.Count-1 do//回圈得到memo3中的一行
begin
for b:=0 to Memo2.Lines.Count-1 do//回圈得到memo2中的一行
begin
memo1.Text:= stringreplace(memo1.Text,Memo2.Lines.Strings[b],Memo3.Lines.Strings[c],[rfreplaceall]);//用memo2中的一行來搜索memo1中相同的文字,用memo3中的一行代替該段文字
end;
end;
end;
這樣memo1中的全部行會被替換成memo3的第一行
真心求各位大神解答
uj5u.com熱心網友回復:
目的是什么,沒有說清楚?uj5u.com熱心網友回復:
不要回圈,直接一次:memo1.Text:= stringreplace(memo1.Text,Memo2.Lines.Strings[ 3 ],Memo3.Lines.Strings[ 1 ],[rfreplaceall]);
uj5u.com熱心網友回復:
我的意思是3個memo都有幾十行文字,想要用回圈,用memo2的第一行搜索memo1里全部相同的文字,用memo3的第一行來替換memo1里那些相同的文字uj5u.com熱心網友回復:
以此類推下去,第二行也這樣做,第三行也這樣做,直到全部行數都替換過uj5u.com熱心網友回復:
procedure TForm1.Button1Click(Sender: TObject);var
b,c: integer; //回圈用
begin
for c:=0 to Memo3.Lines.Count-1 do//回圈得到memo3中的一行
begin
for b:=0 to Memo2.Lines.Count-1 do//回圈得到memo2中的一行
begin
memo1.Text:= stringreplace(memo1.Text,Memo2.Lines.Strings[b],Memo3.Lines.Strings[c],[rfreplaceall]);//用memo2中的一行來搜索memo1中相同的文字,用memo3中的一行代替該段文字
end;
end;
end;
不要偷懶啦,還是copy+pos函式吧
iIndex:=pos(memo2.Lines[c],memo1.Lines[b]);
if iIndex>0 then
memo1.Text:= copy(memo1.text,0,iIndex-1)+
memo3.Lines[a]+
copy(memo1.Lines[c],iIndex-1+(length(memo2.Lines[b]),length(memo1.Lines[c]));
uj5u.com熱心網友回復:
誰的 第二行也這樣做,誰的 第三行也這樣做?
做軟體,必須非常明確:被替換者,原文,新文
uj5u.com熱心網友回復:

都看懵了,不知道樓主要干什么
uj5u.com熱心網友回復:
都看懵了,不知道樓主要干什么
看懵了,就是不知道樓主要干什么?
uj5u.com熱心網友回復:
TMemo的lines就是tstrings
for c:=0 to Memo3.Lines.Count-1 do//回圈得到memo3中的一行
for b:=0 to Memo2.Lines.Count-1 do//回圈得到memo2中的一行
memo1.Text:= stringreplace(memo1.Text,Memo2.Lines[b],Memo3.Lines[c],[rfreplaceall]);//用memo2中的
uj5u.com熱心網友回復:
問問題,應該盡可能 的 把問題描述 清楚 。這樣才好回答。像樓主這樣 問問題 都懶得多打幾個字。。。這叫別人怎么回答呀!!!uj5u.com熱心網友回復:
我的理解不知道對不對,Memo1、Memo2、Memo3都是同樣行數的內容,3個Memo分別一行一行的進行替換操作,替換的內容是Memo1為原文,Memo2為匹配檔案,Memo3為替換檔案是嗎??
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/90326.html
標籤:VCL組件開發及應用
上一篇:怎樣寫這樣的SQL陳述句?
