在fileopen下第一步是找到a的位置,使用什么函数?
  第二步是将b代替a,又用什么函数?
  谢谢:) 
  给个想法也好 :) 
  

解决方案 »

  1.   


    var
      iFileHandle: Integer;
      Buffer: single;
    begin    try
          iFileHandle := FileOpen('aaa.dat', fmOpenwriteRead);
          FileSeek(iFileHandle,13,0);  //指向起点第一个字节向后,偏移的13个字节
          FileRead(iFileHandle, Buffer, 4);//在该位置读取4个字节到Buffer
          FileSeek(iFileHandle,13,0);  //指针又指回来
          FileWrite(iFileHandle, Buffer, 4);//同样的位置覆盖
        finally
          FileClose(iFileHandle);
        end;
    end;
      

  2.   

    还有,对于txt用textflie文件类型的函数比较方便啊
    或者用 
     Myfile:Tstrings;
    i:integer;
    begin    try
          Myfile.LoadFromFile('aaa.dat');
          for i:=0 to Myfile.Count do
          StringReplace(Myfile.Strings[i],a,b,[rfReplaceAll]);
          Myfile.SaveToFile(Myfile.SaveToFile('aaa.dat'););
    end;
      

  3.   

    楼上的代码必然无效。。  //TStrings是无法创建实例的
      Myfile:TStringList; 
      i:integer; 
    begin 
      MyFile := TStrignList.Create;
      try 
        Myfile.LoadFromFile('aaa.dat'); 
        //Count要-1
        for i:=0 to Myfile.Count -1   do 
        //StringReplace是函数
        MyFile[I] := StringReplace(Myfile[I],a,b,[rfReplaceAll , rfIgnoreCase]); 
        Myfile.SaveToFile(Myfile.SaveToFile('aaa.dat');); 
      finally
        MyFile.Free;
      end;
    end;