小编And*_*rew的帖子

Delphi 中重用 TMemoryStream 的意外行为

我试图从 TMemoryStream 读取两个不同长度的字符串,但两个流最终长度相同。因此,例如,如果第一个字符串是“abcdefghijkl”,第二个字符串是“wxyz”,那么我获得的第二个字符串的值是“wxyzefghijkl”(新字符串的前四个字符(“wxyz”)紧随其后)由第一个字符串中未被 'wxyz' 替换的剩余字符

我的代码是:-

var
  L : LongInt
  S : string;

...
  msRecInfo.Position := 0;
  msRecInfo.Read(L, SizeOf(L)); // read size of following string ...

  SubStream.Clear;
  SubStream.CopyFrom(msRecInfo, L); // copy next block of data to a second TMemoryStream

  if (L > 0) then S := StreamToString(SubStream);  //convert the stream into a string

  msRecInfo.Read(L, SizeOf(L)); // get size of following string ...
  SubStream.CopyFrom(msRecInfo, L);
  if (L > 0) then S := StreamToString(SubStream);
Run Code Online (Sandbox Code Playgroud)

我已经为此奋斗了几个小时但没有成功。谁能指出我做错了什么?

delphi string tstream

0
推荐指数
1
解决办法
196
查看次数

标签 统计

delphi ×1

string ×1

tstream ×1