2

我正在开发一个程序,该程序会根据在文件中找到的某些文本将文件分类到组中。大多数文件可能是 .doc 或 .docx。

我的程序应该能够将单词列表与文件中的单词进行比较。我是 C# 的新手,我只学习自己的编程,整个“读取 .doc 文件”的事情都超出了我的想象,所以任何帮助都将不胜感激!

到目前为止,我的代码中与办公室有关的部分是:

代码

if (Path.GetExtension(listBox1.SelectedItem.ToString()) == ".doc" ||
    Path.GetExtension(listBox1.SelectedItem.ToString()) == ".docx")
{
    Microsoft.Office.Interop.Word.Document doc = 
        new Microsoft.Office.Interop.Word.Document(listBox1.SelectedItem.ToString());
    doc.Activate();
}

编辑:

对不起,如果问题不够清楚。我的问题是:

如果文档包含文本文件中包含的任何特定单词,我如何查找。我已经阅读了许多其他问题、答案和教程,可能只有我一个人,但我完全不明白。

4

2 回答 2

1

以下是从 .docx 文件中读取文本的介绍:http: //www.codeproject.com/Articles/20529/Using-DocxToText-to-Extract-Text-from-DOCX-Files

您可以将 .doc 文件转换为 .docx 文件,并对两者使用相同的过程。

于 2013-04-17T20:58:12.630 回答
0

您似乎正在使用 Microsoft 的互操作类,因此您可以使用 Outlook.Interop.Find

MSDN 描述和如何

如果文档包含该单词,execute 方法将返回 true。

        StringBuilder sb = new StringBuilder();

        Word.Range rng = rodape.Range;
        Word.Find find = rng.Find;

        find.ClearFormatting();
        find.Replacement.ClearFormatting();//Only required if you will replace the text
        if (find.Execute("textToBeFound", false))
        {
            //The document contains the word

        }

另一个例子,来自微软:

private void SelectionFind() { 

object findText = "find me";

Application.Selection.Find.ClearFormatting();

if (Application.Selection.Find.Execute(ref findText,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref missing, ref missing)) 
{ 
    MessageBox.Show("Text found.");
} 
else
{ 
    MessageBox.Show("The text could not be located.");
} }

但是你有很多其他方法可以做到这一点..

于 2016-07-04T20:36:07.140 回答