Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/47: Рейтинг темы: голосов - 47, средняя оценка - 4.53
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86

Поиск одинаковых (дубликатов) значений в файле

24.01.2017, 05:53. Показов 9693. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужен код для выявления одинаковых дублирующихся значений в текстовом файле.

Например текстовый файл:

q1q1q1w2w2w2
ewrwrtwetvr34t
werwr43r43rrw
q1q1q1w2w2w2
retretjoiertrtert
ertretert434543



Сам исходник программы
WindowsFormsApplication3.zip
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2017, 05:53
Ответы с готовыми решениями:

Поиск значений в XML-файле
Доброго всем времени суток!:bravo: Обращаюсь ко всем с такой просьбой о помощи: есть программа, написанная на C# и файл XML с двумя...

Поиск дубликатов без LINQ
Есть список объектов класса Class1. public class Class1 { public int Num; //номер по порядку public string ID;...

Быстрый поиск дубликатов строк
Есть большой файл (3,5 миллиона записей). Нужно быстро найти все дубликаты строк и вывести индексы/как-то их сохранить. Прямой поиск...

7
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
24.01.2017, 11:54
ivanofme, а после того как нашли повторяющиеся что с ними нужно сделать?
0
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86
24.01.2017, 12:22  [ТС]
FateOri, просто найти их. Выводится сообщение типо "найдено 2 строчки" и показывает какие.
0
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
24.01.2017, 13:09
Лучший ответ Сообщение было отмечено ivanofme как решение

Решение

Цитата Сообщение от input.txt
q1q1q1w2w2w2
ewrwrtwetvr34t
werwr43r43rrw
q1q1q1w2w2w2
retretjoiertrtert
ertretert434543
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        public static void Main(string[] args)
        {
            List<string> lines = File.ReadAllLines("input.txt").ToList();
 
            for(int i = 0; i < lines.Count; ++i)
            {
                int count = lines.Count(str => str == lines[i]);
                if (count > 1)
                {
                    Console.WriteLine
                    (
                        "Строка '{0}' повторяется {1} раз(-а).",
                        lines[i], count
                    );
                    lines.Remove(lines[i]);
                }
            }
        }
Строка 'q1q1q1w2w2w2' повторяется 2 раз(-а).
Для продолжения нажмите любую клавишу . . .

Добавлено через 32 минуты
Цитата Сообщение от input.txt
q1q1q1w2w2w2
ewrwrtwetvr34t
werwr43r43rrw
q1q1q1w2w2w2
test
test
retretjoiertrtert
ertretert434543
test
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
        struct T { public IGrouping<string, List<string>> s; public int i; }
        public static void Main(string[] args)
        {
            List<string> lines = File.ReadAllLines("input.txt").ToList();
 
            /*
SELECT TYPE , COUNT( 
TYPE ) 
FROM lgsl
GROUP BY TYPE 
HAVING COUNT( 
TYPE ) >1
LIMIT 0 , 30
            */
 
            var query = from line in lines
                        group lines by line into lin
                        where lin.Count() > 1
                        select new T { s = lin, i = lin.Count() };
 
            foreach (var t in query)
            {
                Console.WriteLine
                (
                    "Строка '{0}' повторяется {1} раз(-а).",
                    t.s.Key, t.i
                );
            }
        }
Строка 'q1q1q1w2w2w2' повторяется 2 раз(-а).
Строка 'test' повторяется 3 раз(-а).
Для продолжения нажмите любую клавишу . . .
1
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86
24.01.2017, 20:56  [ТС]
Цитата Сообщение от dailydose Посмотреть сообщение
public static void Main(string[] args)
* * * * {
* * * * * * List<string> lines = File.ReadAllLines("input.txt").ToList();
for(int i = 0; i < lines.Count; ++i)
* * * * * * {
* * * * * * * * int count = lines.Count(str => str == lines[i]);
* * * * * * * * if (count > 1)
* * * * * * * * {
* * * * * * * * * * Console.WriteLine
* * * * * * * * * * (
* * * * * * * * * * * * "Строка '{0}' повторяется {1} раз(-а).",
* * * * * * * * * * * * lines[i], count
* * * * * * * * * * );
* * * * * * * * * * lines.Remove(lines[i]);
* * * * * * * * }
* * * * * * }
* * * * }

Немножко подправлено.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void button2_Click(object sender, EventArgs e)
        {
            List<string> lines = File.ReadAllLines("md5.txt").ToList();
 
            for (int i = 0; i < lines.Count; ++i)
            {
                int count = lines.Count(str => str == lines[i]);
                if (count > 1)
                {
                    MessageBox.Show
                    (string.Format(
                    "Строка '{0}' повторяется {1} раз(-а).",
                    lines[i], count)
                    );
                    lines.Remove(lines[i]);
                }
            }
 
        }
Если нет дубликатов, то нужно бы добавить messagebox "Дубликатов не найдено!"

Но есть одна проблема если одинаковых значений 999, то сообщение выводится 999 раз.



Как сделать чтобы отображалось в Form все дубли?
0
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86
25.01.2017, 01:51  [ТС]
Проблему решил.
0
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
25.01.2017, 08:51
Цитата Сообщение от ivanofme Посмотреть сообщение
Проблему решил.
как ?
1
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86
26.01.2017, 19:55  [ТС]
Цитата Сообщение от dailydose Посмотреть сообщение
как ?
Добавил текстБокс. Заменил MessageBox.Show на textBox3.Text +=

C#
1
2
3
4
5
6
textBox3.Text +=
                    (string.Format(
                    "Строка '{0}' повторяется {1} раз(-а)",
                    lines[i], count)
                    ) + Environment.NewLine;
                    lines.Remove(lines[i]);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2017, 19:55
Помогаю со студенческими работами здесь

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

Поиск одинаковых строк в текстовом файле и вывод дубликатов в другой текстовый файл
Добрый вечер. Нужна помощь знатоков Есть текстовый файл по пути D:\arxiv\rezult.txt с содержимым: Air robot MPEG-4-5min...

Поиск и удаление дубликатов и инвертированных значений
Доброго времени суток! У меня 2 вопроса: Имеются параметры(например работоспособность телефона в виде двоичного кода): 1 0 1 0 1...

Поиск одинаковых чисел в файле
Создать файл. Ввести в него числа. Подсчитать количество чисел 5.

Поиск значений в файле и замена соответствующих в другом файле
Сильно не пинайте, я новичок. Существует 2 файла. В первом (1.txt) текст: 123=qwerty 321=пример 12457=еще пример Во втором...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru