procedure TForm1.Button1Click(Sender: TObject); const
 code: array[0..8] of byte =($55, $8B, $EC, $81, $C4, $30, $F0, $FF, $FF);
 var
   newcode : array[0..8] of byte;
  i:integer;
begin
  for i:=0 to sizeof(code)-1  do
     newcode[i]:=code[i] xor $55;  //这个就是你要的新数组
end;上面是那的别人的代码,我想获取xor后的 newcode[i]数组,上面的代码经过xor后如何把xor处理后的数组保存到Memo控件里面,或者是保存到一个新的txt文本文件里?获取的效果也是 ($55, $8B, $EC, $81, $C4, $30, $F0, $FF, $FF )这种形式的,不过就是经过xor处理过的数组。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    const
      code: array[0..8] of byte =($55, $8B, $EC, $81, $C4, $30, $F0, $FF, $FF);
    var
      TmpValue: Byte;
      TmpStr: String;
      iStart, iCount:integer;
      newcode : array[0..8] of byte;
    begin
      TmpStr := '';
      Memo1.Clear;
      iCount := sizeof(code) - 1;
      for iStart := 0 to iCount do
      begin
        TmpValue := code[iStart] xor $55;
        TmpStr := TmpStr + '$' + IntToHex(TmpValue, 2) + ',';
        newcode[iStart]:= TmpValue; //这个就是你要的新数组
      end;
      TmpStr[length(TmpStr)] := ')';
      TmpStr := '(' +  TmpStr;
      Memo1.Text := TmpStr;
    end;
    初略写了一下不知道是不是你要的结果! 
      

  2.   

    你加密时xor $55,那么解密时再执行一遍xor $55即可。