很简单;OleContainer1.SaveToStream(s);
s是有格式的有个文件头指明了ole的格式大小;
再追加
S2.seek(0,0);
showmessage(inttostr(s2.size));
s2.SaveToStream(s3); //可以追加的
s3.Seek(0,1);
showmessage(inttostr(s3.size));//循环结束后,s3大小确实是前两者之和
只能是把数据附加到第一个流里面;
ole文件头没改就好像你把多个.wav 文件合并为一个文件;放映只有第一个
s是有格式的有个文件头指明了ole的格式大小;
再追加
S2.seek(0,0);
showmessage(inttostr(s2.size));
s2.SaveToStream(s3); //可以追加的
s3.Seek(0,1);
showmessage(inttostr(s3.size));//循环结束后,s3大小确实是前两者之和
只能是把数据附加到第一个流里面;
ole文件头没改就好像你把多个.wav 文件合并为一个文件;放映只有第一个
解决方案 »
- 狼的群快3年整了,放分留念,并招几个mm.
- 如何用程序在Access数据库连接里用sql访问外部带密码的access数据库?
- delphi的批处理怎样做?
- ReceiveBuf???
- delphi如何改变系统的分辨率?
- 数据实时更新的设计!!五百分!!!!
- 小问题:远程桌面数据库访问原理?
- 关于和应用程序服务器连接问题
- 我在使用delphi5的时候,如果在我运行程序之后,终止采用按快捷栏上的||时,delphi会死机?
- 请教一个关于DELPHI的数据控件的问题?
- 我在bitbnt按钮调入图片以后,按钮上面空白,在点击它的时候能出现一个小框,这可怎么办呀?
- 如何访问动态生成的表单内的子对象(Timage)
procedure TForm1.readtoole1Click(Sender: TObject);
var
s:TADOBlobStream;
begin
s:=TADOBlobStream.Create(ADOTable1content,bmRead);
楼上兄弟的话我不明白,你到底要我改什么地方????
s.position:=0 ;
showmessage(inttostr(s.size));
OleContainer1.LoadFromStream(s);
s.free;
end;
doc的合并,绝对不是两个文件简单的叠加可以解决的。
不过我知道不用OleContainer,写库是用TFILEStream,
procedure TForm1.Button4Click(Sender: TObject);
var
DS: TFILEStream;
begin
if opendialog1.Execute then
begin
DS := TFILEStream.Create(opendialog1.filename, fmOpenRead);
DS.Position := 0;
with table1 do
begin
append;
(FieldByName('figure') as TBlobField).LoadFromStream(DS);
post;
end;
DS.FREE;
end;
end;
对于文本文件来说是可以合并的,用memo,richedit都可以正常显示,不过用ole不能显示;
这种方法我之所以没有用,是因为word文档内容仍不能被合并(大小倒是合并了),而我
现在做的这个东东最关键是就是要求合并word文档,所以向大家求救!!
gz,gz
不相信你可以做一个测试,写两个Word文档,在将这两个文档归并到第三文档中。我保证第三个文档的大小不等于前面两个文档的和。
可以考虑用VBA中的INSERTFILE的方法。
我不懂vb,在delphi中怎么调用呢???
然后在Range的Interface中有InsertFile这个方法。这是示例代码。
var
a: _Application;
c, d: OleVariant;
begin
c := 0;
d := 0;
// get the interface of a
a.ActiveDocument.Range(c, d).InsertFile('YourFile.doc', EmptyParam,
EmptyParam, EmptyParam, EmptyParam);
end;