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

代码如下:

   
   
   
   
  1. var  
  2.   TempIn, TempOut: TAESBuffer;  
  3.   StrStream: TStringStream;  
  4.   s:string;  
  5. begin  
  6. //创建StrStream对象  
  7.     StrStream := TStringStream.Create(s);  
  8.    try 
  9. //将指针恢复到字符串头  
  10.     StrStream.Seek(0, soFromBeginning);  
  11. //从缓冲读取数据  
  12.     StrStream.Write (TempOut, SizeOf(TempOut));  
  13.   finally  
  14.   StrStream.Free;  
  15.   end;  
  16. end;  
  17.