怎么有流读取文件?(50分)

  • 主题发起人 cleanhands
  • 开始时间
C

cleanhands

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi6编写的流读取文件的程序。在执行到fileStream.Read(Buffer^, MemSize);是系统报读取错误,那位知道是什么原因?谢谢!
function SYS_MODEL_FileToString(FileName:String):string;
var
Buffer: PChar;
MemSize: Integer;
fileStream:TFileStream;
begin
try
fileStream:=TFileStream.Create(FileName,fmOpenRead);
showmessage(inttostr(fileStream.Size));
MemSize:=fileStream.Size;
Inc(MemSize);
Buffer := AllocMem(MemSize);
try
fileStream.Read(Buffer^, MemSize);
Result := Replace(string(Buffer),'''','$',false);
finally
Buffer:=nil;
FreeMem(Buffer, MemSize);
end;
finally
fileStream:=nil;
fileStream.Free;
end;
end;
 
Buffer := AllocMem(MemSize);改为Buffer := AllocMem(MemSize+1);试试。
既然是PChar必定是以#0结尾的,为它也要分配空间吧,没有实验啊。你自己看看是不是这个问题
 
Result := Replace(string(Buffer),'''','$',false);
^^^^^^^^^^^^^^^
這個強制類型轉換有錯,可能得到不可預料的結果!
 
顶部