读书人

求技术支持 delphi中string复原到TStr

发布时间: 2013-07-01 12:33:04 作者: rapoo

求技术支持 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);

读书人网 >.NET

热点推荐