求救!!!急——!(100分)

  • 主题发起人 主题发起人 mumsboy
  • 开始时间 开始时间
M

mumsboy

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大虾,我用TWordApplication和TWordDocument打开文档后,要在里面查找某个字符,为什么那么慢啊?我是用TWordDocument.Characters.item(i).Get_Text逐个访问的,要好几分钟啊!!
拜托各位了!!!!!!!!!!!
 
主要的时间是花在了读取上!!!
 
有search干吗不用???

var
SearchText, Wrap: OleVariant;
R: Range;
..
{ if using a D5 TWordDocument component called Doc -
otherwise, assign a _Document variable }
Doc.ConnectTo(Word.ActiveDocument as _Document);

SearchText := 'find this';
Wrap := wdFindContinue;
R := Doc.Range;
R.Find.Execute(SearchText, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, Wrap, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);

{ R will now be the range of the found text, so... }
Memo1.Text := R.Paragraphs.Item(1).Range.Text;
 
你打開一個新的word 文件,然後復制新巨集,然後逐步執行即可
 
那请问,怎么知道我找的这个字符所在位置呢?
因为我要把整个Word文档复制到剪贴板上,然后在Image中粘贴,但每次只能粘贴第一页,
所以我想利用分页符判断页,然后一页一页的复制粘贴,不知有没有更好的办法?
 
大虾们,帮忙啊!
 
Range接口的属性和方法是在太多,俺不敢试试,怕淹死在里面(最怕就是Word Automation)
应该有这个index属性,自己试试吧

MSDN上面都建议用Range代替Selection,所以Range肯定有位置信息的,兄弟,我同情,但是无奈~~~
 
Range.Get_start
Range.start
Range.end_
Range.Get_End_
试试
 
是啊,我的机子最近就是弄这个死得多——cry[:(]
 
{ R will now be the range of the found text, so... }
是指Delphi里吗?好像不行
 
感谢DragonPC_???!问题解决了!!!
 
后退
顶部