С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для farex_
26 / 26 / 3
Регистрация: 19.11.2010
Сообщений: 242

RichTexBox поиск одинаковых слов в предложениях

28.08.2012, 14:07. Показов 2143. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно вот код.
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
            string[] split1 = { ".", Environment.NewLine };//и так далее  
            string[] split2 = { " ", ",",":", ";", "<", ">", "!", "@", "#", "$", "%", "^", "&", "+", ")", "(", "{", "}", "[", "]", "\n", "\r", "<i>", Environment.NewLine };//и так далее
           
            string[] str_Slovo = richTextBox1.Text.Split(split1, StringSplitOptions.RemoveEmptyEntries);
 
 
            for (int i = 0; i < str_Slovo.Length; i++)
            {
 
                string[] mass = str_Slovo[i].Split(split2, StringSplitOptions.RemoveEmptyEntries);
 
                for (int b = 0; b < mass.Length; b++)
                {
 
                    string strSlovo1 = mass[b].ToString().ToLower();
                    for (int d = b+1; d < mass.Length; d++)
                    {
                        string strSlovo2 = mass[d].ToString().ToLower();
 
                        if (strSlovo1 == strSlovo2)
                        {
 
                        }
                    }
 
                }
 
            }
if (strSlovo1 == strSlovo2)
{
И вот здесь я не знаю что писать.
Все нашел два повторяющихся слова в предложении (конец предложения я определяю по ".")
Как теперь выделить их цветом? если пользуюсь RichTexbox.Find, то из за того что индексы в массиве и
риче разные он выделяет первое найденное (дублирующее) слово в другом предложении.
если перебираю рич индексами аля по буквам и сравниваю с искомым словом то работа алгоритма ужасно долгая...
Уже не знаю, вообще реально ли это?
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2012, 14:07
Ответы с готовыми решениями:

Строки. Поиск одинаковых слов в предложениях. Вывод вместо одинаковых слов "*"
Ввести два предложения, если в них есть одинаковые слова то во втором предложении заменить эти слова на &quot;*&quot;, причем количество...

Поиск одинаковых слов в двух разных предложениях
Доброе время суток. Люди добрые, помогите кто чем сможет: кто советом, кто примерчиком. Как из двух различных предложений, которые...

Richtexbox перенос слов
Дано 2 Richtexboxa нужно в первый загрузить информацию из rtf файла найти слово использую texbox и перенести слово во 2 richtexbox каждое...

7
 Аватар для mbigun
136 / 136 / 46
Регистрация: 21.04.2009
Сообщений: 178
28.08.2012, 15:56
Все можно проще сделать
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
using System.Text.RegularExpressions;
using System.Linq;
 
private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "Hello my name is Myke. The World is beautifull. Hello my dear friend!!!";
 
            string[] splits = {".", " ", ",",":", ";", "<", ">", "!", "@", "#", "$", "%", "^", "&", "+", ")", "(", "{", "}", "[", "]", "\n", "\r", "<i>", Environment.NewLine };
            List<string> list = new List<string>();
            list = richTextBox1.Text.Split(splits, StringSplitOptions.RemoveEmptyEntries).ToList();
 
            var duplicate_words = list.GroupBy(x => x.ToLower()).Where(x => x.Count() > 1).Select(x => x.Key.ToLower());
 
            foreach (string value in duplicate_words.ToList())
            {
                Regex reg = new Regex(value + " ", RegexOptions.IgnoreCase);
 
                foreach (Match match in reg.Matches(richTextBox1.Text))
                {
                    richTextBox1.Select(match.Index, match.Length);
                    richTextBox1.SelectionColor = Color.Red;
                    richTextBox1.DeselectAll();
                }
                richTextBox1.SelectionStart = richTextBox1.TextLength;
                richTextBox1.SelectionColor = Color.Black;
            }
        }
Изображения
 
0
 Аватар для mbigun
136 / 136 / 46
Регистрация: 21.04.2009
Сообщений: 178
28.08.2012, 15:59
Аааа.. ссори. Нужно поиск в пределах одного предложения. Тогда немного не так будет. Чуть позже напишу..
1
0 / 0 / 0
Регистрация: 26.08.2012
Сообщений: 12
28.08.2012, 16:20
По-моему можно ещё проще? Сплитом получить массивы слов до точек и просто найти нужные...
0
 Аватар для farex_
26 / 26 / 3
Регистрация: 19.11.2010
Сообщений: 242
28.08.2012, 16:32  [ТС]
Цитата Сообщение от mbigun Посмотреть сообщение
Аааа.. ссори. Нужно поиск в пределах одного предложения. Тогда немного не так будет. Чуть позже напишу..
Буду очень признателен.
Спасибо.

Добавлено через 1 минуту
Цитата Сообщение от coll3ctor Посмотреть сообщение
По-моему можно ещё проще? Сплитом получить массивы слов до точек и просто найти нужные...
Так я так и делаю... вы код читали?
0
0 / 0 / 0
Регистрация: 26.08.2012
Сообщений: 12
28.08.2012, 18:13
Цитата Сообщение от farex_ Посмотреть сообщение
Буду очень признателен.
Спасибо.

Добавлено через 1 минуту


Так я так и делаю... вы код читали?
Прошу прощения, но после того, как я увидел
C#
1
str_Slovo
я понял, что в коде будет разобратья тяжело и не прочёл. Сейчас разобрался и, да, прошу меня извинить второй раз - всё так же.
ps
читайте книгу "Совершенный код"
0
 Аватар для farex_
26 / 26 / 3
Регистрация: 19.11.2010
Сообщений: 242
28.08.2012, 18:31  [ТС]
Спасибо за совет, как буде время обязательно прочту.
0
 Аватар для mbigun
136 / 136 / 46
Регистрация: 21.04.2009
Сообщений: 178
28.08.2012, 20:20
Цитата Сообщение от mbigun Посмотреть сообщение
Аааа.. ссори. Нужно поиск в пределах одного предложения. Тогда немного не так будет. Чуть позже напишу..
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
using System.Text.RegularExpressions;
using System.Linq;
 
        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "Name My name is Tom. I am programmer and programmer! Here is my code. I'm using VS2010 and VS2010.";
 
            string[] splits_words = {" ", ",",":", ";", "<", ">", "!", "@", "#", "$", "%", "^", "&", "+", ")", "(", "{", "}", "[", "]", "\n", "\r", "<i>", Environment.NewLine };
 
            foreach (string sentence in richTextBox1.Text.Split(new Char[] { '.' }, StringSplitOptions.RemoveEmptyEntries).ToList())
            {
                var duplicate_words = sentence.Split(splits_words, StringSplitOptions.RemoveEmptyEntries).GroupBy(x => x.ToLower()).Where(x => x.Count() > 1).Select(x => x.Key.ToLower());
                
                foreach(string value in duplicate_words)
                {
                    Regex reg = new Regex(@"\b(" + value + @")\b", RegexOptions.IgnoreCase);
 
                    foreach (Match match in reg.Matches(sentence))
                    {
                         richTextBox1.Select(richTextBox1.Text.IndexOf(sentence) + match.Index, match.Length);
                         richTextBox1.SelectionColor = Color.Red;
                         richTextBox1.DeselectAll();
                    }
                    richTextBox1.SelectionStart = richTextBox1.TextLength;
                    richTextBox1.SelectionColor = Color.Black;                
                }            
            }
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2012, 20:20
Помогаю со студенческими работами здесь

Поиск одинаковых слов. Поиск адреса в БД
Добрый день! Ребята подскажите пожалуйста, задача написать сервер принимающий POST запрос (в нем 2 параметра адрес улица,дом,квартира и еще...

Поиск одинаковых слов
нужно в столбце B найти одинаковые выражения состоящие из нескольких слов. В общем полностью одинаковые. Ну ли хотя бы 1 или 2 слова...

Поиск одинаковых слов в тексте
Решить на С++ с комментариями, если не сложно! :) Дан файл, содержащий текст на русском языке. Найти слова, встречающиеся в каждом...

Поиск одинаковых слов в memo
Всем привет. Задача такова В memo1 есть текст sadddsfdsgdfgСЛОВОasdasfsdf sdfgdfgddfhgfСЛОВО2hdghdgfhdgfhgf ...

Поиск одинаковых слов в файлах
Задача. Если в файле A и в файле B есть одинаковые слова (с учетом регистра) удалять это слово из файла B (все слова в файле B столбик по...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru