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

请问TMemoryStream用法

2012-09-14 
请教TMemoryStream用法我用TMemoryStream读取一个文件,要提取其中的字符串比如TM.Position:12我要读取 1

请教TMemoryStream用法
我用TMemoryStream读取一个文件,要提取其中的字符串
比如 
TM.Position:=12;
我要读取 12-15(4个字节)之间的字符串, 不知道怎么多
如果是
Tm.Read(BufferStr,4); 这样得到的东西部正确
只有用本办法
str:='';
for I := 0 to 3 do
  begin
  Tm.Read(BufferStr,1);
  str:=str+BufferStr;
  end;
似乎这样不对吧

另外 比如
 读取 TM.Position:=32;
 32-35(4个字节)的数字(00 00 80 00)
结果
Tm.Read(a,4);
读出来的是524288 也就是 00 80 00 00 

好像也就是高低位的问题, 请问怎么正确读取

不知道我表达清楚没有 


[解决办法]
str_From_12_TO_15: AnsiString;
stream: TMemoryStream;
...
SetString(str_From_12_TO_15, PAnsiChar(LongWord(stream.Memory) + 12), 15 - 12 + 1);


第二个问题,则跟数据的字节序有关。如果明显字节序相反,可以通过winsock2单元的ntohl进行转换。

热点排行