Поиск совпадений в текстовом файле - C#
Формулировка задачи:
Помогите провести поиск совпадений в текстовом файле!
У нас известно такие начальные данные, которые могут меняться, к примеру:
НР, НИ, НК, НО, НЦ, НТ, КА, КО
Также у нас есть текстовый файл, который содержит готовые наборы, на пример возьмем 3 строчки:
КА, КО, ЦА, ЦО, ДР, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ - строка 1
КА, КО, ЦА, ДВ, НР, НИ, НК, НО, НЦ - строка 2
КО, ЦА, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ - строка 3
Как сравнить начальные данные с текстовым файлом и узнать в какой строчке наиболее совпадений, после всего
вывести название строки - например строка 1(8 совп.), стр. 2(7 совп.), стр. 3(7 совпад.)?
Решение задачи: «Поиск совпадений в текстовом файле»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main()
- {
- string[] lines = File.ReadAllLines("D:\\File.txt", Encoding.Default);
- Console.Write("Введите теги через запятую\n>");
- string sub = Console.ReadLine();
- Dictionary<int, int> spisok = new Dictionary<int, int>();
- int count;
- for (int i = 0; i < lines.Length; i++)
- {
- count = 0;
- string[] temp = sub.Split(',').Select(x => x.Trim()).ToArray(); //разделяем строку запятыми, выбираем каждый элемент и убираем из него пробелы
- foreach (var str in temp)//пробегаем по полученному массиву подстрок
- if (lines[i].Contains(str)) //если в i-й строке содержится подстрока str,
- count++;//то прибавляем счетчик
- spisok.Add(i, count);//добавляем элемент в словарь с ключом i и значением count
- }
- foreach (var i in spisok)
- Console.WriteLine("стр. {0} ({1} совп.)", i.Key, i.Value);
- Console.ReadLine();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д