我要把一个无类型的文件中的一些特定字符串用自己的字符串替换,怎么做,最好时用写一个函数实现此功能。

解决方案 »

  1.   

    procedure ChangeStrth(Str1,Str2 : String ; REdit:Trichedit98);
    var
      FoundAt : LongInt;
      StartPos, ToEnd: Integer;begin
      FoundAt:=0;
      StartPos := 0;  ToEnd := Length(REdit.Text) - StartPos;
      while FoundAt < ToEnd do
      begin
        FoundAt := REdit.FindText(str1,StartPos,ToEnd,[stMatchCase]);
        if FoundAt <> -1 then
        begin
          REdit.SetFocus;
          REdit.SelStart := FoundAt;
          REdit.SelLength := Length(str1) ;
          REdit.SelText:=Str2;
        end
        else
        begin
          exit;
        end;
      end;
    end;
      

  2.   

    用流读入文件,然后用 StringReplace 替换
      

  3.   

    //如果文件不很大,你可以这样:
    procedure replacestrinfile(filename,oldstr,newstr:string);
    var
    size,fh:cardinal;
    s:string;
    begin
      filesetattr(filename,0);
      fh:=fileopen(filename,fmopenread);
      size:=fileseek(fh,0,2);
      fileseek(fh,0,0);
      setlength(s,size);
      fileread(s[1],size);
      fileclose(fh);
      stringreplace(s,oldstr,newstr,[rfReplaceAll]);
      fh:=fileopen(filename,fmcreate);
      fileseek(fh,0,0);
      filewrite(s[1],length(s));
      fileclose(fh);
    end;
      

  4.   

    不好意思,stringreplace(s,oldstr,newstr,[rfReplaceAll]);
    应该是: s:=stringreplace(s,oldstr,newstr,[rfReplaceAll]);
      

  5.   

    andfileread(s[1],size);应该是fileread(fh,s[1],size);
    filewrite(s[1],length(s));应该是filewrite(fh,s[1],length(s));