我先用Tfilestream从xx.xml文件读出数据,然后赋给buffer,再从buffer赋给Tmemorystream,就会出错“Stream write error”是什么原因?
代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
stream,Stream2:TStream;
Buffer: Pointer;
size:integer;
begin
if OpenDialog1.Execute then
begin
stream2:= TMemoryStream.Create;
Stream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
size:=stream.Size;
inc(size);
getmem(buffer,size);
stream.writebuffer(Buffer^,Size);
stream2.readbuffer(Buffer^,size);
cds.LoadFromStream(stream2);
end;
end;
代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
stream,Stream2:TStream;
Buffer: Pointer;
size:integer;
begin
if OpenDialog1.Execute then
begin
stream2:= TMemoryStream.Create;
Stream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
size:=stream.Size;
inc(size);
getmem(buffer,size);
stream.writebuffer(Buffer^,Size);
stream2.readbuffer(Buffer^,size);
cds.LoadFromStream(stream2);
end;
end;
var
stream,Stream2:TStream;
Buffer: Pointer;
size:integer;
begin
if OpenDialog1.Execute then
begin
stream2:= TMemoryStream.Create;
Stream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
size:=stream.Size;
inc(size);
getmem(buffer,size);
stream.Position := 0;
stream.ReadBuffer(Buffer^,Size);
stream2.Position := 0;
stream2.WriteBuffer(Buffer^,size);
cds.LoadFromStream(stream2);
end;
end;
stream2.Position := 0; //加這句試下
cds.LoadFromStream(stream2);