近日帮朋友用DELPHI做一个AES加解密过程的程序,需要显示过程中的缓冲数据。一开始考虑的是将byte数组转换为字符串,搜遍网路也未发现适合方法。后来在查看TSTREAM类时有一个TSTRINGSTREAM,可以直接从缓冲中读取数据,然后转换为字符串。

代码如下:

var
  TempIn, TempOut: TAESBuffer;
  StrStream: TStringStream;
  s:string;
begin
//创建StrStream对象
    StrStream := TStringStream.Create(s);
   try
//将指针恢复到字符串头
    StrStream.Seek(0, soFromBeginning);
//从缓冲读取数据
    StrStream.Write (TempOut, SizeOf(TempOut));
  finally
  StrStream.Free;
  end;
end;