G
guqs
Unregistered / Unconfirmed
GUEST, unregistred user!
有一个函数的参数为TStream类型,要求传入由TFileStream从文件读出的数据。
当直接从文件读入时正常,但我想从资源文件读出或用其他方法(总之不想读文件)。
我用
Stream:TMemoryStream;
hResInfo,hRes: THandle;
ptrReportchar;
textchar;
n:longint;
begin
Stream:=TMemoryStream.Create;
hResInfo := FindResource(HInstance, 'Report1', 'frp');
hRes := LoadResource(HInstance, hResInfo);
n:=SizeofResource(HInstance, hResInfo);
if hRes>32 then {its a good load}
begin {lock the resource}
ptrReport:=LockResource(hRes);
end;
Stream.Writebuffer(ptrReport^,n);
stream.SaveToFile('print.frp'); //用此语句存成的文件格式正确。
theFunction.LoadFromStream(Stream); //此时说文件格式不对。
Stream.Free;
而用
Stream:=TFileStream('print.frp',...);
theFunction.LoadFromStream(Stream); //此句正常
theFunction是别人控件的函数,没法改。
有什么办法可以解决?
如何把TMemoStream转成TFileStream?
当直接从文件读入时正常,但我想从资源文件读出或用其他方法(总之不想读文件)。
我用
Stream:TMemoryStream;
hResInfo,hRes: THandle;
ptrReportchar;
textchar;
n:longint;
begin
Stream:=TMemoryStream.Create;
hResInfo := FindResource(HInstance, 'Report1', 'frp');
hRes := LoadResource(HInstance, hResInfo);
n:=SizeofResource(HInstance, hResInfo);
if hRes>32 then {its a good load}
begin {lock the resource}
ptrReport:=LockResource(hRes);
end;
Stream.Writebuffer(ptrReport^,n);
stream.SaveToFile('print.frp'); //用此语句存成的文件格式正确。
theFunction.LoadFromStream(Stream); //此时说文件格式不对。
Stream.Free;
而用
Stream:=TFileStream('print.frp',...);
theFunction.LoadFromStream(Stream); //此句正常
theFunction是别人控件的函数,没法改。
有什么办法可以解决?
如何把TMemoStream转成TFileStream?