如何实现对 某 word 文件的读取,并搜索在该文件中的是否存在某个关键字????分不够可以加!!!!!!!!

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      wd:variant;
      key_exist:boolean;
    const
      key='delphi';
    begin
      try
        wd:=CreateOleObject( 'word.Application' );
      except
        on Exception do raise exception.Create('無法創建doc文件,請確認是否安裝word')
      end;
      wd.visible:=false;   //顯示出來,否則看不到word
      wd.caption:='試試看我的word';
      //wd.Documents.add;  //  新建
      wd.Documents.open(FileName:='c:\1.doc'); //打開舊文件
      //wd.Options.CheckSpellingAsYouType := False;   //關閉拼寫錯誤
      //wd.Options.CheckGrammarAsYouType := False;    //關閉語法錯誤
      //wd.activedocument.Range.InsertAfter('asfsadf');   //編輯-添加
      key_exist:=wd.activedocument.range.find.execute(findtext:=key);
      wd.quit;               //退出word
      if key_exist then
        showmessage('存在')
      else
        showmessage('不存在');end;也是剛學的,這種動態的創建沒有codeinsight,比較不方便。
    有時間 再學學其它的方法。
      

  2.   

    //将word文档读取到RICHEDIT中
    use ComObj;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      wordapp,doc:olevariant;
      i:integer;
    begin
      wordapp:=createoleobject('Word.application');
      try
        doc:=wordapp.Documents.Open(FileName:='F:\ClassSynaxPractice12.doc');
       for i:=1 to doc.Paragraphs.count do     //总行数
          richedit1.lines.add(doc.Paragraphs.item(i).range.text); //提取每一行
      finally
        wordapp.quit;
      end;
    end;
      

  3.   

    還有這個
    var
      s:string;
      s:=wd.activedocument.range.text;   //取得文檔內容
      //wd.documents.close;    //關閉文檔
      //wd.quit;               //退出word
      showmessage(s);
      

  4.   

    //下面的函数实现查找+替换功能,如果不要替换,相应修改即可
    uses ComObj ;procedure TForm1.Button1Click(Sender: TObject);varvWord,vDoc,vRange : Variant ;sText,sReplace : string ;lReturn : Boolean ;beginsText := 'ABCDEFG' ; //原文字串sReplace := 'GFEDCBA' ; //新字串vWord := CreateOleObject('Word.Application') ;//创建Word线程try//打开要操作的文件vDoc := vWord.Documents.Open('C:Documents.Doc');vDoc.Select ; //选取中整个文档vRange := vDoc.Range ; //替换范围lReturn := True ;while lReturn dobegin //找到并替代成功则返回 True 共11个参数lReturn := vDoc.Range.Find.Execute(sText,,,,,,,,,sReplace,True) ;end ;finallyvDoc.Close(True) ; //关闭文并保存vWord.Quit(False) ; //退出Wordend ;end;
      

  5.   

    能不能打开的不一定是WORD 文档,有可能是TXT 文档,?并且找到后能不能定位到是 第几行?并且同时能返回包括该关键字在内的左右的N个字符串呢?
    求大家帮我想想办法啦!!!!!!!!!!!!!
      

  6.   

    word的是不好找。特别是中文,windows的查找工具就找不出来。帮你顶
      

  7.   

    能不能打开的不一定是WORD 文档,有可能是TXT 文档,?并且找到后能不能定位到是 第几行?并且同时能返回包括该关键字在内的左右的N个字符串呢?
    ----------------------------------
    能~ 但不知道怎么实现^_^
    对Word的操作实际上是调用Word里的宏,对TXT 文档就不知道了,可能要用API函数吧~
      

  8.   

    Delphi程序新建Word文稿
    格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)
    Template: 使用模板的名称,
    NewTemplate: 新建文档的类型,True表示为模板,False表示为文档
    DocumentType: 文档类型,默认为空白文档
    Visible: 打捞的窗口是否可见举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:\Temlate.dot',NewTemplate:=False);三、Delphi程序打开Word文稿
    格式:WordDocuments.Open(FileName,ConfirmConversions,ReadOnly,PassWordDocument,
    PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,
    Format,Encoding,Visible)FileName: 文档名(包含路径)
    Confirmconversions: 是否显示文件转换对话框
    ReadOnly: 是否以只读方式打开文档
    AddToRecentFiles: 是否将文件添加到"文件"菜单底部的最近使用文件列表中
    PassWordDocument: 打开此文档时所需要的密码
    PasswordTemplate: 打开此模板时所需要的密码
    Revert: 如果文档已经,是否重新打开文档
    WritePasswordDocument: 保存对文档更改时所需要的密码
    WritePasswordTemplate: 保存对模板进行更改时所需要的密码
    Format: 打开文档时所需使用的文件转换器
    Encoding: 所使用的文档代码页
    Visible: 打开文档的窗口是否可见举例:
    Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,
    AddToRecentFiles:=False);四、Delphi程序保存Word文稿
    格式:WordDocuments.SaveAs(FileName, FileFormat, LockComments, Password,
    AddToRecentFiles, WritePassword, ReadOnlyRecommended, 
    EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, 
    SaveAsAOCELetter)FileName: 文件名。默认为当前文件夹和文件名。
    FileFormat 文档保存的格式。
    LockComments 如果为 True,则此文档只允许进行批注。
    Password 打开文档时的口令。
    AddToRecentFiles 如果为True,则将文档添至"文件"菜单中最近使用的文档列表中。
    WritePassword 保存对文档的修改所需的口令。
    ReadOnlyRecommended 如果为 True,在每次打开文档时,Word 将建议用户采用只读方式。
    EmbedTrueTypeFonts 如果为 True,则将文档与 TrueType 字体一起保存。
    SaveNativePictureFormat 如果为 True,则从其他系统平台(例如 Macintosh)导入的图形仅保存其 Windows 版本。
    SaveFormsData 如果为 True,则将窗体中用户输入的数据存为一条数据记录。
    SaveAsAOCELetter 如果文档包含一个附加,当此属性值为 True 时,将文档存为一篇 AOCE 信笺(同时保存邮件)。举例:
    Word_Ole.Documents.SaveAs(FileName:=Doc_File,FileFormat=wdFormatDocument,
    AddToRecentFiles=False);五、从数据库读取文件到本地硬盘和从本地硬盘读取文件到数据库在数据库上使用Image二进制字段保存,使用Stream流的方式。创建文件流:
    Word_FileStream:=TFileStream.Create(Target_Name,fmOpenWrite or fmCreate);
    Word_FileStream.Position:=0;保存到数据库的Image字段:
    TBlobField(AdoQuery1.FieldByName(Column_Name)).SaveToStream(Word_FileStream);从数据库读取文件到本地硬盘:
    TBlobField(ADOQuery1.FieldByName(Column_Name)).loadfromStream(Word_FileStream);释放文件流:
    Word_FileStream.Free;