Personally I prefer the PChar method over the TMemoryStream method, the main reason is that the TMemoryStream comes with a lot of overhead and in the end the TMemoryStream is using a Pointer in almost the same way you would be using the PChar anyways. The advantage of the TMemoryStream is that it comes with build in features to read things from a pointer other than (and larger than) characters, but mimicing that behaviour with a PChar or a Pointer is not hard either!

However MSX is right, using TMemoryStream is more the Delphi way, I'm just old-fashioned and like to do everything on my own! I'm one of those Delphi developers that only use objects where needed, and functions and where he can!

So in the end... I guess it's a style thing!