我帮你写人段代码看能否实现
procedure seacher;
var
  Tem_str1,Tem_str2,Tem_str3,tem_str4,Tem_str5,tem_str6:string;
  Tem_int:integer;
  i:integer;
  N:integer;
begin
  N:="Number"
  tem_str1:=memo1.text;
  Tem_str2:='abc'
  Tem_int:=pos(Tem_str2,Tem_str2);
  if Tem_int>0 then begin
    Tem_str3:=copy(Tem_str1,1,Tem_int);
    Tem_str4:=Copy(Tem_str1,Tem_int,Length(Tem_str1)-tem_int);
    Tem_str5:='';
    for i:=0 to n do Tem_str5:=Tem_str5+' ';
    Memo1.Text:=Tem_str3+Tem_str5+Tem_str4;
  end;
end; 其中n为你所想加的空格的数目。试试,不行再谈,OK?

解决方案 »

  1.   

    private sub command1_click()
    const mystr="abc"
    dim location as integer
    dim i,j as integer       'or long
    for i=0 to len(memo.text)  '哈哈,我用vb来写的,因为delphi的函数我忘了,
                               '但vb里没有这个memo
    if mystr = mid(memo.text,i,3) then  '我没有用回搠,直接判断
    break                               '对不起呀,我不太清楚如何从循环中跳出
    end if
    next
    if i<>len(memo.text) then
    location=0
    j=0
    do while location< =i
    location=location +len(memo.lines(j))   'memo 里的行数是从0开始的
    j=j+1
    loop
    debug.print "abc is first disappeared in line " & j  
    else
    debug.print "No matched string..."
    end if
    '如果发现了,该如何处理呢?
    '用如下思路,先把该line读入一个string,同时删除该行memo.lines.delete,然后截取"abc"的最后一个字符的位置,再分别一个字符一个字符拷到另外一个string,中间插入你想加的字串,然后写回memo.lines.insert...我就不再多述了.
    以上并未通过测试,仅供参考.
      

  2.   

    在后一行出现,那就直接memolines(j+1).insert嘛