IdFTP_Main.Get('test.ini',MemoryStream);
MemoryStream.Read(Buffer,MemoryStream.Size);
SetString(TempStatus, PChar(MemoryStream.Memory), MemoryStream.Size div SizeOf(WideChar));
test.ini包含一個簡短的純文本字符串。內存大小MemoryStream.Size表示8,這是正確的。 TempString的內容是超過一百個控制字符。所有幫助讚賞。Delphi XE8:MemoryStream充滿垃圾
編輯:此代碼將產生正確的文件,但要求我寫一個副本,這是不安全的:
IdFTP_Main.Get('test.ini',MemoryStream);
MemoryStream.Position := 0;
MemoryStream.SaveToFile('./test.ini');
該文件是什麼編碼?是不是沒有BOM的UTF-16LE?你爲什麼要讀入Buffer? –
可能會更清晰地使用正確編碼的字符串流。 –
該文件是Linux中的文本文件。 –