首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求技术支持 delphi中string复原到TStream大小不一样

2013-07-01 
求技术支持 delphi中string还原到TStream大小不一样我先把一个文件得到了16进制字符串,得到的字符串和WinH

求技术支持 delphi中string还原到TStream大小不一样
我先把一个文件得到了16进制字符串,得到的字符串和WinHex或者UE载入的是一样的,然后我想通过这个字符串再还原为文件,可是还原后的大于变了,中间很多位置多了一些数据 大家帮我找找原因啊

tmpStr:string;//这个串存放的是由文件得到的16进制数据,这个串很标准的,和UE什么的得到的是一样的

然后我将串写入到一个内存流中
tmpBstr: TBytes; 

  tmpBstr:=Tbytes(Pointer(tmpStr));//先把数据转成字节数组
  tMemStream:=TMemoryStream.Create;
  tMemStream.Write(tmpBstr[1],high(tmpBstr));//这里把数据写入流


OutFile: TFileStream; // 输出文件

最后我把文件写出来
OutFile.Write(tMemStream.Memory,tMemStream.Size);

结果是写出来的文件比直接用文件流加载文件写出来的要大一些,不知道为什么由string通过TMemoryStream然后转到TFileStream最后输出这中间是哪儿不对了,有什么方法能正确的转换呢?


[解决办法]
 tmpBstr:=Tbytes(Pointer(tmpStr));//先把数据转成字节数组
==>
 tmpBstr:=TEncoding.ASCII.GetBytes(tmpStr);

热点排行