Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Поиск русских слов в файле


Автор: exrame 1.3.2011, 15:33
Привет

Подскажите, как построить поиск русских слов в текстовом файле. C #

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;

 

namespace searchTxtFile

{

  class searchTxt

  {

    static void Main()

    {
    
      string fName = @"c:\MyTest.txt ";//path to text file

      StreamReader testTxt = new StreamReader(fName);

      string allRead = testTxt.ReadToEnd();

      testTxt.Close(); 
      
    
    
      string regMatch = "qwe";
      
      
      if (Regex.IsMatch(allRead,regMatch))

      {

        Console.WriteLine("Найдено\n");

        
      }

      else

      {

        Console.WriteLine("Не найдено\n");
       

      }

      Console.ReadLine();
    }

    
  }
   
}


Автор: wester 1.3.2011, 15:49
exrame, 
конкретных или любых ?

Автор: exrame 1.3.2011, 15:53
Хотя бы текстовых в .txt, .doc, .xls

Автор: wester 1.3.2011, 16:03
exrame, 
нет, я не это спрашивал.
искать конкретные слова, или любые ?

Автор: exrame 1.3.2011, 16:12
слова берутся из базы данных, поиск только по одному слову или фразе. Если слово из бд есть в тексте, тогда вывести что есть такое слово.

Автор: exrame 1.3.2011, 18:37
подскажите как просто русские слова искать? через какую функцию? у меня есть пример, но она работает только с английским текстом.

Автор: Georgich 2.3.2011, 09:32
exrame, doc - это бинарный файл. Как-то я делал на коленке поиск в doc файле. Делается через Microsoft.Office.Interop.Word (подключается в ссылках).
Сам код поиска слова (не только русского) и добавление в listBox имени файла, который содержал это слово (задание такое было smile
Код

        //Поиск в файле
        private void FindInSelection(FileInfo f)
        {
            string[] keywords = textBox2.Text.Split(';');

            Object unit = Word.WdUnits.wdStory;
            Object extend = Word.WdMovementType.wdMove;
            WordApp.Selection.HomeKey(ref unit, ref extend);

            Word.Find fnd = WordApp.Selection.Find;
            fnd.ClearFormatting();

            foreach (string keyword in keywords)
            {
                Object findText = keyword;
                Object matchCase = Type.Missing;
                Object matchWholeWord = Type.Missing;
                Object matchWildcards = Type.Missing;
                Object matchSoundsLike = Type.Missing;
                Object matchAllWordForms = Type.Missing;
                Object forward = Type.Missing;
                Object wrap = Type.Missing;
                Object format2 = Type.Missing;
                Object replaceWith = Type.Missing;
                Object replace = Type.Missing;
                Object matchKashida = Type.Missing;
                Object matchDiacritics = Type.Missing;
                Object matchAlefHamza = Type.Missing;
                Object matchControl = Type.Missing;

                if (fnd.Execute(ref findText, ref matchCase, ref matchWholeWord,
                ref matchWildcards, ref matchSoundsLike, ref matchAllWordForms,
                ref forward, ref wrap, ref format2, ref replaceWith,
                ref replace, ref matchKashida, ref matchDiacritics,
                ref matchAlefHamza, ref matchControl))
                {
                    listBox1.Items.Add(f.Name);
                }
            }
        }

Пример тоже был взят с просторов интернетов и адаптирован под себя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)