用UltraEdit打开一个“a.exe”文件后得到16进制代码如下:00000000h: 46 57 53 05 1D D3 19 00 78 00 07 08 00 00 16 80;
00000010h: 00 00 19 C0 0C 43 02 89 FF FF 86 04 06 26 BA 01;
00000020h: ......(省略);
00000030h: ......;
    .         .
    .         .
    .         .
    .         .
    .         .我现在想把“00000010h”中的2个“FF”删除,并保存为新的“b.exe”文件;请问用代码该如何写!我对文件流的技术是一个白痴!各位大侠最好贴出代码!一但解决,立刻加分!决不失言!!!谢谢!!!!!!!!!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      tmpstream:TFileStream;
      tmpbuffer:array[0..1] of byte;
    begin
      tmpstream:=TFileStream.Create('a.exe',fmOpenReadWrite);
      tmpstream.Seek(25,soFromBeginning);
      tmpstream.Write(tmpbuffer,2);
    end;
      

  2.   

    那么我想用"AA""BB"替换"FF""FF",有该怎么写呢!???
    谢谢大家的帮忙!!!
      

  3.   

    还有我想判断那两个位置是不是"FF""FF"
    如果是的话:
    我想用"AA""BB"替换"FF""FF",有该怎么写呢!???
    谢谢大家的帮忙!!!谢谢大家的帮忙!!!谢谢大家的帮忙!!!
      

  4.   

    sxwsg(sg) :
    请给出一些原代码!
    谢谢!!!!!!
      

  5.   

    用"AA""BB"替换"FF""FF":StringReplace(s,'FFFF','AABB',[rfReplaceAll]) ;
      

  6.   

    那我用TFileStream该如何解决:我想判断那两个位置是不是"FF""FF"
    如果是的话:
    我想用"AA""BB"替换"FF""FF",该怎么写呢?