【发布时间】:2015-05-03 08:22:02
【问题描述】:
当我在 Delphi 7 中使用此代码和函数时,将显示错误消息:
此代码将 MemoryStream 内容转换为 WideString
function ReadWideString(stream: TStream): WideString;
var
nChars: LongInt;
begin
stream.Position := 0;
stream.ReadBuffer(nChars, SizeOf(nChars));
SetLength(Result, nChars);
if nChars > 0 then
stream.ReadBuffer(Result[1], nChars * SizeOf(Result[1]));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
mem: TMemoryStream;
begin
mem := TMemoryStream.Create;
mem.LoadFromFile('C:\Users\User1\Desktop\wide.txt');
Memo1.Lines.Add(ReadWideString(mem));
end;
任何帮助将不胜感激。
【问题讨论】:
-
当您在调试器中单步执行代码时,异常发生在哪一行?
-
最后一行:stream.ReadBuffer(Result[1], nChars * SizeOf(Result[1]));
-
请注意,您应该提及
the source您从哪里获得此代码,以便我们可以选择在那里修复它(但不仅因为如此)。或者只是对帖子作者发表评论。在这种情况下,只需将帖子阅读到最后。 -
这个code不行,我以前试过。