请教各位高手,如何实现用OleContainer.LoadFromStream方式读取WORD文档的内容?(100分)

  • 主题发起人 主题发起人 David.Yu
  • 开始时间 开始时间
D

David.Yu

Unregistered / Unconfirmed
GUEST, unregistred user!
请教高手:
如何用流将WORD文件的内容保存到数据库中,又怎么样才能从数据库中用流读到
OLECONTAINER中来,我试了,但从库中读流时出错“FILE STREAM ERROR”不知道应该
如何解决?请高手赐教!(最好又读、写原码)
 
两中Stream的格式不一样,olecontainer的loadFromstream只能装入通过OleContainer
的SaveToStream的Stream。

http://www.delphibbs.com/delphibbs/dispq.asp?lid=852259
 
给你代码:
var
memsize:integer;
buffer:pchar;
myfile:tfilestream;
stream:tblobstream;
filename:string;
begin
if opendialog1.Execute then
begin
filename:=opendialog1.FileName;
myfile:=tfilestream.Create(filename,fmopenread);
with table1 do
begin
open;
edit;
stream:=tblobstream.Create(fieldbyname('doc') as tblobfield,bmwrite);
memsize:=myfile.Size;
inc(memsize);
buffer:=allocmem(memsize);
try
stream.Seek(0,sofrombeginning);
myfile.Read(buffer^,memsize);
stream.Write(buffer^,memsize);
fieldbyname('name').AsString:=extractfilename(filename);
fieldbyname('size').AsInteger:=memsize-1;
finally
myfile.Free;
stream.Free;
end;
try
table1.Post;

except
showmessage('dddd');
halt;
end;
showmessage('ok');
ole1.CreateObjectFromFile(filename,false);
ole1.Run;
end;
end;
end;
 
后退
顶部