procedure TForm1.BitBtn1Click(Sender: TObject);
var
  S: string;
begin
  with TResourceStream.Create(HInstance, 'ftp_Text', 'File') do try
    if Size <= 0 then Exit;
    SetLength(S, Size);
    Read(S[1], Size);
    with TStringList.Create do try
      Text := StringReplace(S, 'xxxxxxxxxxxxxxxxxxx', Edit4.Text,
      [rfReplaceAll, rfIgnoreCase]);
      Text := StringReplace(S, 'yyyyyyyyyyyyyyyyy', Edit5.Text,
      [rfReplaceAll, rfIgnoreCase]);
      Text := StringReplace(S, 'mmmmmmmmmmmmmmmmm', Edit6.Text,
      [rfReplaceAll, rfIgnoreCase]);
      Text := StringReplace(S, 'aaaaaaaaaaaaaaaaaaaa', Edit8.Text,
      [rfReplaceAll, rfIgnoreCase]); // 替换字符
      SaveToFile('c:\ftp.txt'); // 保存为文件
    finally
      Free;
    end;
  finally
    Free;
    begin
    MessageBox(0, 'Http传马配置成功', '提示信息', mb_iconinformation);
  end;
end;
end;这个是代码,但是只能替换最后一个 aaaaaaaaaaaaa只能替换这个!别的都不能替换!不知道杂回事!高手帮忙下

解决方案 »

  1.   

    说明你的资源文件中不包含"xxxxxxxxxxxxxxxxxxx","yyyyyyyyyyyyyyyyy"和"mmmmmmmmmmmmmmmmm"串,或者不能被完全匹配.
      

  2.   

    逻辑有问题...
        Text:=S;
        with TStringList.Create do try       
          Text := StringReplace(Text, 'xxxxxxxxxxxxxxxxxxx', Edit4.Text, 
          [rfReplaceAll, rfIgnoreCase]); 
          Text := StringReplace(Text, 'yyyyyyyyyyyyyyyyy', Edit5.Text, 
          [rfReplaceAll, rfIgnoreCase]); 
          Text := StringReplace(Text, 'mmmmmmmmmmmmmmmmm', Edit6.Text, 
          [rfReplaceAll, rfIgnoreCase]); 
          Text := StringReplace(Text, 'aaaaaaaaaaaaaaaaaaaa', Edit8.Text, 
          [rfReplaceAll, rfIgnoreCase]); // 替换字符 
          SaveToFile('c:\ftp.txt'); // 保存为文件 
        finally 
          Free; 
        end; 
    ...
      

  3.   

    你应该把每次替换过的值存到S中,最后付给text。
    或者第二次,和以后替换时,使用上次替换的结合字符串procedure TForm1.BitBtn1Click(Sender: TObject); 
    var 
      S: string; 
    begin 
      with TResourceStream.Create(HInstance, 'ftp_Text', 'File') do try 
        if Size  <= 0 then Exit; 
        SetLength(S, Size); 
        Read(S[1], Size); 
        with TStringList.Create do try 
          Text := StringReplace(S, 'xxxxxxxxxxxxxxxxxxx', Edit4.Text, 
          [rfReplaceAll, rfIgnoreCase]); 
          Text := StringReplace(Text, 'yyyyyyyyyyyyyyyyy', Edit5.Text, 
          [rfReplaceAll, rfIgnoreCase]); 
          Text := StringReplace(Text, 'mmmmmmmmmmmmmmmmm', Edit6.Text, 
          [rfReplaceAll, rfIgnoreCase]); 
          Text := StringReplace(Text, 'aaaaaaaaaaaaaaaaaaaa', Edit8.Text, 
          [rfReplaceAll, rfIgnoreCase]); // 替换字符 
          SaveToFile('c:\ftp.txt'); // 保存为文件 
        finally 
          Free; 
        end; 
      finally 
        Free; 
        begin 
        MessageBox(0, 'Http传马配置成功', '提示信息', mb_iconinformation); 
      end; 
    end; 
    end; 
      

  4.   

    发帖问了,你直接给我帖链接即可,别在线消息问:
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      S: string;
    begin
      with TResourceStream.Create(HInstance, 'ftp_Text', 'File') do try
        if Size <= 0 then Exit;
        SetLength(S, Size);
        Read(S[1], Size);
        with TStringList.Create do try
          S := StringReplace(S, 'xxxxxxxxxxxxxxxxxxx', Edit4.Text,
            [rfReplaceAll, rfIgnoreCase]);
          S := StringReplace(S, 'yyyyyyyyyyyyyyyyy', Edit5.Text,
            [rfReplaceAll, rfIgnoreCase]);
          S := StringReplace(S, 'mmmmmmmmmmmmmmmmm', Edit6.Text,
            [rfReplaceAll, rfIgnoreCase]);
          S := StringReplace(S, 'aaaaaaaaaaaaaaaaaaaa', Edit8.Text,
            [rfReplaceAll, rfIgnoreCase]); // 替换字符
          Text := S;
          SaveToFile('c:\ftp.txt'); // 保存为文件
        finally
          Free;
        end;
        MessageBox(0, 'Http传马配置成功', '提示信息', mb_iconinformation);
      finally
        Free;
      end;
    end;好比
    A := 1;
    A := 2;
    A := 3;
    你说A最后是多少?A := 1;
    A := A + 2;
    A := A + 3;
    这样才能实现你期望的