我试图从 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)
我已经为此奋斗了几个小时但没有成功。谁能指出我做错了什么?