0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 16
1

Поиск совпадений в текстовом файле

04.06.2015, 14:34. Показов 5451. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите провести поиск совпадений в текстовом файле!
У нас известно такие начальные данные, которые могут меняться, к примеру:
НР, НИ, НК, НО, НЦ, НТ, КА, КО

Также у нас есть текстовый файл, который содержит готовые наборы, на пример возьмем 3 строчки:
КА, КО, ЦА, ЦО, ДР, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ - строка 1
КА, КО, ЦА, ДВ, НР, НИ, НК, НО, НЦ - строка 2
КО, ЦА, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ - строка 3

Как сравнить начальные данные с текстовым файлом и узнать в какой строчке наиболее совпадений, после всего
вывести название строки - например строка 1(8 совп.), стр. 2(7 совп.), стр. 3(7 совпад.)?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 14:34
Ответы с готовыми решениями:

Поиск в текстовом файле
Дан текстовый файл(~50-70 тыс. строк), данные в нем имеют следующую структуру: слово1 значение1...

Поиск в текстовом файле
Подскажите, каким образом можно сделать поиск в текстовом файле. Суть проблемы: есть тхт файл,...

CreateThread() в C# и поиск в текстовом файле
Здравствуйте. Написал программку которая ищет в текстовом файле в заданной строке, заданное...

Поиск слова в текстовом файле
Написать программу реализующую поиск слова в массиве. Создать событие, при котором при нажатии...

8
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
04.06.2015, 15:09 2
Мудрёно, но работает)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            string[] lines = {"КА, КО, ЦА, ЦО, ДР, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ", 
                              "КА, КО, ЦА, ДВ, НР, НИ, НК, НО, НЦ",
                              "КО, ЦА, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ"};
            string sub = "НР, НИ, НК, НО, НЦ, НТ, КА, КО";
 
            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();
        }
    }
}
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 16
04.06.2015, 15:15  [ТС] 3
Спасибо за старание, но немного не так! Начальные данные всегда меняются и совпадения могут быть не полные, к тому же это все в текстовом файле
0
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
04.06.2015, 18:23 4
Не использовал я файлы дабы быстрее написать. Думал с этим сложность не возникнет. Сейчас переделать попробую

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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();
        }
    }
}
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 16
04.06.2015, 19:43  [ТС] 5
Это все правильно, но есть нюансы. Я могу тебе скинуть проект и ты все поймешь! Поможешь?

Добавлено через 17 минут
Romalei, Это все правильно, но есть нюансы. Я могу тебе скинуть проект и ты все поймешь! Поможешь?
0
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
04.06.2015, 20:42 6
Попробуй
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 16
04.06.2015, 21:34  [ТС] 7
http://files.d-lan.dp.ua/downl... 8fcf2847c4
0
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
05.06.2015, 08:48 8
Лучший ответ Сообщение было отмечено K_i_n_G как решение

Решение

Сойдет?
Вложения
Тип файла: 7z WindowsFormsApplication1.7z (30.3 Кб, 87 просмотров)
1
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 16
05.06.2015, 09:43  [ТС] 9
Romalei, Спасибо, большое!
0
05.06.2015, 09:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 09:43
Помогаю со студенческими работами здесь

Как осуществить поиск в текстовом файле
Здравствуйте, уважаемые мной форумчани)) Вообщем, нужно дописать функционал программы... А...

Поиск в текстовом файле по совпадениям символов
Доброго времени суток) Нужно сделать поиск в текстовом файле по совпадениям символов. То есть на...

Поиск в телефонном справочнике текстовом файле
вопрос в следующем = у меня внутри сборки лижит файл phone.txt. по запросу имени, хочу получать его...

Поиск строки в текстовом файле по ключевым словам
private string getLine(string keywords) { string path = @&quot;D:\work\test.txt&quot;;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru