Поиск слова в нескольких текстовых файлах - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть папка с неизвестным (постоянно меняется) количеством текстовых файлов. Необходимо взять все файлы из этой папки и найти в содержимом этих файлов определенное слово. Слова в файлах имеют разделители в виде пробелов. Пожалуйста, подскажите что я делаю не так? Я совершенный нуб.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace ConsoleApplication2
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. var dir = @"D:\Programs\data\logs\of"; //Определяем директорию
  14. var contents = Directory.EnumerateFiles(dir, "*.txt") //Говорим с каким расширением читать файлы
  15. .Select(File.ReadAllLines).ToString();
  16. string a = contents;
  17. string b = "Type:15"; //Искомое слово
  18. char[] separators = { ' '}; //Cоздаём массив разделителей
  19. string[] words = a.Split(separators, StringSplitOptions.RemoveEmptyEntries);
  20. Console.WriteLine("Совпадений не найдено!"); //Выводим если совпадений не найдено
  21. foreach (string word in words)
  22. {
  23. if (b.Equals(word))
  24. {
  25. Console.WriteLine("Есть совпадение!"); //Выводим если совпадения найдены
  26. break;
  27. }
  28. }
  29. Console.ReadKey();
  30. }
  31. }
  32. }

Решение задачи: «Поиск слова в нескольких текстовых файлах»

textual
Листинг программы
  1.              string sourceDirectory = @"D:\Programs\data\logs\of"; //Определяем директорию
  2.              foreach (var txtFiles in Directory.EnumerateFiles(sourceDirectory, "*.txt"))
  3.             {
  4.                 Console.WriteLine(txtFiles);
  5.                 string[] lines = System.IO.File.ReadAllLines(txtFiles);
  6.                 int i = 0;
  7.                 string b = "Type:15"; //Искомое слово
  8.                 foreach (string line in lines)
  9.                 {
  10.                     string[] var = lines[i].Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);
  11.                     i += 1;
  12.                     foreach (string word in var)
  13.                         if (b.Equals(word))
  14.                     {
  15.                         Console.WriteLine("Есть совпадение!"); //Выводим если совпадения найдены
  16.                         break;
  17.                     }
  18.                 }
  19.             }
  20.             Console.ReadKey();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы