就是把一个二进制文件中的每一个字节 异或 11小弟我这先谢过了..

解决方案 »

  1.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      ms, msDes: TMemoryStream;
      byX1, byX2: BYTE;
      pbySrcByte: PByte;
      i: integer;
    begin
      byX1 := 100;
      ms := TMemoryStream.Create();
      msDes := TMemoryStream.Create();
      ms.LoadFromFile('d:\temp\bbb.txt');
      pbySrcByte := PByte(ms.Memory);
      for i := 0 to ms.Size - 1 do begin
        byX2 := pbySrcByte^ xor byX1;
        msDes.Write(byX2, 1);
        Inc(pbySrcByte);
      end;
      msDes.Seek(0, 0);
      msDes.SaveToFile('d:\temp\ccc.txt');
      ms.Free();
      msDes.Free();
    end;例子用的是文本文件,对二进制文件同样有效。与文件与目标文件交换位置就可还原。
    该例子在delphi7下调试同过
      

  2.   

    procedure TForm_fx_jhfx.Btn_cancelClick(Sender: TObject);
    var
       i:integer;
    begin   i:=15;
       i:= i xor 1 ;
       showmessage(inttostr(i));end;
      

  3.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
    mybuffer:string;
    Fs: TMemoryStream;
    i:integer;
    begin
     if OpenDialog1.Execute then
      begin
        fs:=TMemoryStream.Create;
        fs.LoadFromFile(OpenDialog1.FileName);
        setlength(mybuffer,fs.size);
        fs.Read(pchar(mybuffer)^,fs.Size);
        for i:=1 to length(mybuffer) do
          begin
            mybuffer[i]:=chr(ord(mybuffer[i]) xor $11);
          end;
        fs.Clear;
        fs.Write(pchar(mybuffer)^,length(mybuffer));
        fs.SaveToFile(OpenDialog1.FileName);
        fs.Free;
      end;end;
      

  4.   

    谢谢了.这是我在CSDN里的第一个问题... 给我留下了好印像....