2011-07-21 116 views
0

读取T流在Delphi,下面的代码的先前版本:问题在Delphi XE

var InBuf: array[1..45] of Byte; 

    Count := InStream.Read(InBuf, SizeOf(InBuf)); 

填充可变INBUF与正确的值(每个字节有一个值)。现在在Delphi XE,阵列的每第二个字节是0,我想,因为字节数据类型是因为它的Unicode性质在Delphi XE的两倍大。但是,我流已经产生,并需要通过这个过程,所以我需要另一种类型的(也许?)这是字节的半角或另一种解决办法,如果有人遇到这个问题。由于

+0

什么是视频插播广告? – Toto

+7

字节在XE中仍然是一个字节。但是,现在似乎该流包含一个unicode字符串。检查填充流的代码。 –

回答

7

什么这里发生,> 99%的概率是,你写一个字符串变量流。使用UTF-16编码的Unicode字符串每个字符有两个字节,而旧版本的Delphi使用ANSI编码,每个字符一个字节。

英文文本,当使用UTF-16编码中有你观察每第二个字节为零的模式。

为了解决这个问题,你将需要调查的代码写入流部分。