Я хочу скопировать часть FileStream к MemoryStream.
FileStream.Write(Pointer(MemoryStream)^, MemoryStream.Size);
FileStream.Read(Pointer(MemoryStream)^, count);
Это правильно? Это не работает на меня.
Вы должны Read () из FileStream в отдельный буфер, а затем Write () в MemoryStream, то есть:
var
Buffer: PByte;
GetMem(Buffer, NumberOfBytes);
try
FileStream.ReadBuffer(Buffer^, NumberOfBytes);
MemoryStream.WriteBuffer(Buffer^, NumberOfBytes);
finally
FreeMem(Buffer);
end;
Поскольку вы имеете дело с двумя объектами TStream, это будет проще использовать вместо этого метод TStream.CopyFrom (), например:
MemoryStream.CopyFrom(FileStream, NumberOfBytes);