2013-10-10 197 views
0

我能夠使用我的代碼搜索/突出顯示word文檔中的特定單詞。但以下是我面臨的問題。在c文檔中突出顯示word文檔中的文本#

如果搜索詞是「它」,那麼它搜索「它」,並在w「它」nessed。我只想搜索單詞「it」。我如何解決這個問題?

private int FindLoop(Word._Application wordApp, object text, 
          Word._Document aDoc, 
          object aComment, out List<string> OccuranceList, 
          bool insertComment) 
    { 

     int intFound = 0; 
     //object start = 0; 
     //object end = 1; 
     object missing = System.Reflection.Missing.Value; 

     object myfile = saveFileDialog.FileName; 

     Word.Range rng = wordApp.ActiveDocument.Range(ref missing, ref missing); 




     object readOnly = true; 
     //object isVisible = true; 
     object isVisible = false; 
     object oMissing = System.Reflection.Missing.Value; 
     string fname = textBox1.Text; 


     object matchWholeWord = true; 

     OccuranceList = new List<string>(); 
     object[] Parameters; 
     Parameters = new object[15]; 
     Parameters[0] = text; 
     Parameters[1] = missing; 
     Parameters[2] = missing; 
     Parameters[3] = missing; 
     Parameters[4] = missing; 
     Parameters[5] = missing; 
     Parameters[6] = missing; 
     Parameters[7] = missing; 
     Parameters[8] = missing; 
     Parameters[9] = text; 
     Parameters[10] = missing; 
     Parameters[11] = missing; 
     Parameters[12] = missing; 
     Parameters[13] = missing; 
     Parameters[14] = missing; 
     bool found = false; 



     { 
      try 
      { 

       found = (bool)rng.Find.GetType().InvokeMember("Execute", BindingFlags.InvokeMethod, null, rng.Find, Parameters); 





      } 

      catch (Exception ex) 
      { 
       MessageBox.Show("Find Loop", ex.Message); 
      } 





      //while (rng.Find.Found) 
      while (found) 
      { 



       intFound++; 
       if (checkBox1.Checked == true) 
       { 
        if (fname.ToString().EndsWith("doc") || fname.ToString().EndsWith("docx")) 
        { 
         try 
         { 
          if (rng.Text.Trim() == text.ToString()) 
          { 



           // Add a new document 
           aDoc = wordApp.Documents.Open(fname, ref oMissing, 
                   ref readOnly, ref oMissing, ref oMissing, ref oMissing, 
                   ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                   ref oMissing, ref isVisible, ref oMissing, ref oMissing, 
                   ref oMissing, ref oMissing); 



           rng.Font.Bold = 1; 
           rng.HighlightColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed; 
          } 

         } 

         catch (Exception ex) 
         { 

          MessageBox.Show(ex.Message); 
         } 

        } 


       } 
    } 
    } 

回答

1

您需要爲搜索的文本添加一些通配符。在你的情況文本中找到將是:<it>而不是it。參考你的代碼應該是這樣的:

Parameters[0] = String.Format("<{0}>"; text); 

此外,你需要設置通配符參數爲true:

Parameters[3] = true; 

有關更多信息,請this link

+0

我正面臨着案件的問題。我需要在不考慮區分大小寫的情況下進行搜索。 – Robin

+0

嘗試設置爲true:'參數[1] = true;' –

+0

沒有它的力量工作..任何其他方法? – Robin

相關問題