如果快速在大量WORD文件中查找字符串(100分)

  • 主题发起人 主题发起人 snake1118
  • 开始时间 开始时间
S

snake1118

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个程序,用
App := CreateOleObject('Word.Application');
——————————————————————
App.Documents.open(filename:=OpenDialog1.FileName);
App.Selection.Find.ClearFormatting;
App.Selection.Find.Text := '222';
if App.Selection.Find.Execute then
ShowMessage('GOT')
else
ShowMessage('NO');
App.activeDocument.Close;
这样的方法打开每个WORD文件进行字符串查找,然后关闭,再打开,再查找,但现在的问题是我要在大量的WORD文件中查找,这样的方法速度很慢,有没有更好更快的方法,请各位赐教!
——————————————————————————
进行大量查找操作的时候,程序会进入无响应状态,是不是创个线程来解决这样的问题?
 
打开查找的确是一个方法,但速度让人不能接受,如果是用线程的话,就更不行了,本身只打开一个word文档时,就得好几秒,如果是打开十几个的话,估计机子也要废了!把word放到流里查找不知道行不行?你可以试一下
 
to rockmmm
word的流操作,有没有什么代码可以借鉴吗?
 
应该有办法的,不过我比较菜,帮你顶。
 
:)
高手们来帮帮忙啊
 
如果是文本好办,word由于有自己定义的格式所以不好查找,用流好像也不行,比如在word中输入“中”,保存为doc文件后,用文件流的方式打开文件,查找“d6d0”是什么也找不到的,除非知道word文件的格式,而且doc中加入了大量的其他字符,对查找的准确性也有影响。楼主用“宏”的方式试一下看看吧。
 
难就难在那些文档里面有图片,表格,文字,不然我早把它们转为文本了……咳
 
用线程,很快的
 
线程也不快哦,我发现我要打开近300个WORD文件,要3到5分钟……太慢了
 
偶尔查查用你原来的方法就挺好,如果经常查最好是把word文档中的文字提出来放到数据库中这样查起来就快多了。别的方法我想不会比这个快的。
 
多人接受了~`
 
后退
顶部