Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
bnana
1 / 1 / 0
Регистрация: 29.05.2019
Сообщений: 86
1

Покрасить слово

15.02.2020, 13:53. Просмотров 226. Ответов 10
Метки нет (Все метки)

Нужно выделить цветом слово в тексте которое ввел пользователь

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.IO;
 
namespace Считывание_с_файла_и_поиск_слова
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = " ";
 
 
            StreamReader sr = new StreamReader(@"E:\lab1.txt"/*, System.Text.Encoding.Default*/);
            while ((text = sr.ReadLine()) != null)
            {
                Console.WriteLine("Введите слово которое вы хотите найти: ");
                string a = Console.ReadLine();
                Console.WriteLine(text);
                
                Regex r = new Regex(a+@"(\w*)");
                MatchCollection tx = r.Matches(text);
            }
 
            Console.ReadKey();
        }
    }
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2020, 13:53
Ответы с готовыми решениями:

Покрасить часть текста
Как покрасить часть текст переменной string a = "12345678"; // Эта функция красит текст полностью...

Дана строка символов. Дано слово. Удалите из строки это слово
Дана строка символов. Дано слово. Удалите из строки это слово

Преобразовать слово из заглавных букв в слово из прописных начинающиеся с заглавной
Как преобразовать слово из заглавных букв в слово из прописных, начинающиеся с заглавной: ...

Получить новое предложение, заменив слово на это же слово, но написанное справа-налево
Помогите решить, пожалуйста Для решения задачи использовать тип StringBuilder Получить новое...

Напишите дешифратор, преобразующий исходное слово, зашифрованное по принципу з.29 в слово на русском языке
<<Напишите дешифратор, преобразующий исходное слово, зашифрованное по принципу з.29 в слово на...

10
chumich
1542 / 884 / 301
Регистрация: 20.12.2014
Сообщений: 2,270
15.02.2020, 18:37 2
Цитата Сообщение от bnana Посмотреть сообщение
выделить цветом слово
C#
1
2
Console.BackgroundColor = ConsoleColor.White; // цвет фона для текста
Console.ForegroundColor = ConsoleColor.Red; // цвет самого текста
0
bnana
1 / 1 / 0
Регистрация: 29.05.2019
Сообщений: 86
15.02.2020, 20:55  [ТС] 3
Я знаю как делать цвета, я хочу узнать как выделить конкретное слово в тексте которое ввел пользователь
0
Diamante
2155 / 1591 / 857
Регистрация: 14.08.2016
Сообщений: 5,541
Завершенные тесты: 1
15.02.2020, 22:38 4
bnana,
C#
1
2
3
4
5
6
7
8
9
10
11
12
            var text = File.ReadAllText(@"E:\lab1.txt");
            Console.WriteLine("Введите слово которое вы хотите найти: ");
            string a = Console.ReadLine();
            var splitted = text.Split(new[] { a }, StringSplitOptions.RemoveEmptyEntries);
            Console.Write(splitted[0]);
            for (int i = 1; i < splitted.Length; i++)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write(a);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write(splitted[i]);
            }
0
chumich
1542 / 884 / 301
Регистрация: 20.12.2014
Сообщений: 2,270
15.02.2020, 22:59 5
Как вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string[] text = File.ReadAllLines("D:\\lab1.txt", Encoding.Default);
Console.WriteLine("Введите слово которое вы хотите найти: ");
string a = Console.ReadLine();
Regex r = new Regex(a + @"(\w*)");
foreach (string s in text)
{
    if(r.IsMatch(s))
        Console.ForegroundColor = ConsoleColor.Red;
    else
        Console.ForegroundColor = ConsoleColor.White;
    Console.WriteLine(s);
}
Console.Read();
0
bnana
1 / 1 / 0
Регистрация: 29.05.2019
Сообщений: 86
23.02.2020, 16:19  [ТС] 6
Весь текст красится,а не слово которое ввел пользователь
0
kolorotur
Эксперт .NET
13070 / 10220 / 2653
Регистрация: 17.09.2011
Сообщений: 17,358
Завершенные тесты: 1
23.02.2020, 16:24 7
Цитата Сообщение от bnana Посмотреть сообщение
Нужно выделить цветом слово в тексте которое ввел пользователь
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
var sentence = Console.ReadLine();
var word = Console.ReadLine();
 
var start = sentence.IndexOf(word);
if (start != -1)
{
    Console.Write(sentence.Substring(0, start));
    Console.ForegroundColor = ConsoleColor.Red;
    Console.Write(sentence.Substring(start, word.Length));
    Console.ResetColor();
    Console.WriteLine(sentence.Substring(start + word.Length));
}
else Console.WriteLine(sentence);
0
bnana
1 / 1 / 0
Регистрация: 29.05.2019
Сообщений: 86
23.02.2020, 16:34  [ТС] 8
Программа красит лишь первое слово в тексте, а если слово повторяется 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.IO;
 
namespace Считывание_с_файла_и_поиск_слова
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = " ";
 
 
            StreamReader sr = new StreamReader(@"E:\lab1.txt"/*, System.Text.Encoding.Default*/);
            while ((text = sr.ReadLine()) != null)
            {
                Console.WriteLine("Введите слово которое вы хотите найти: ");
                string a = Console.ReadLine();
                Console.WriteLine(text);
                
                Regex r = new Regex(a+@"(\w*)");
                MatchCollection tx = r.Matches(text);
            }
 
            Console.ReadKey();
        }
    }
}
0
kolorotur
Эксперт .NET
13070 / 10220 / 2653
Регистрация: 17.09.2011
Сообщений: 17,358
Завершенные тесты: 1
23.02.2020, 16:37 9
Цитата Сообщение от bnana Посмотреть сообщение
Программа красит лишь первое слово в тексте
Дык вы ничего по поводу окраски всех найденных слов не говорили.
Как задача поставлена, так она и выполнена

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var sentence = Console.ReadLine();
var word = Console.ReadLine();
 
var matches = Regex.Matches(sentence, Regex.Escape(word));
 
int start = 0;
foreach (Match match in matches)
{
    Console.Write(sentence.Substring(start, match.Index - start));
 
    Console.ForegroundColor = ConsoleColor.Red;
    Console.Write(match.Value);
 
    Console.ResetColor();
    start = match.Index + match.Length;
}
 
Console.WriteLine(sentence.Substring(start));
Цитата Сообщение от bnana Посмотреть сообщение
и можно как то мою программу исправить, а не писать другую.
Ну посмотрите на предложенное решение: как бы вы его адаптировали под свои нужды?
0
bnana
1 / 1 / 0
Регистрация: 29.05.2019
Сообщений: 86
23.02.2020, 16:43  [ТС] 10
Просто она так написана доволи не известным кодом, по крайней мере малая часть, и как бы ну такое
0
kolorotur
Эксперт .NET
13070 / 10220 / 2653
Регистрация: 17.09.2011
Сообщений: 17,358
Завершенные тесты: 1
23.02.2020, 16:52 11
bnana, первый ваш ответ был написан через 10 минут после предложенного решения, второй — через 6 минут.
Это говорит о том, что не было даже попытки разобраться в написанном и адаптировать под свои нужды — хочется чтобы разжевали и в рот положили.
Так вы ничему не научитесь.

Вот, если предположить, что поиск слова надо делать отдельно для каждой строки текстового файла — как в изначальном сообщении:
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
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.IO;
 
namespace Считывание_с_файла_и_поиск_слова
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = " ";
 
 
            StreamReader sr = new StreamReader(@"E:\lab1.txt"/*, System.Text.Encoding.Default*/);
            while ((text = sr.ReadLine()) != null)
            {
                Console.WriteLine("Введите слово которое вы хотите найти: ");
                var sentence = text;
                var word = Console.ReadLine();
 
                var matches = Regex.Matches(sentence, Regex.Escape(word));
 
                int start = 0;
                foreach (Match match in matches)
                {
                    Console.Write(sentence.Substring(start, match.Index - start));
 
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write(match.Value);
 
                    Console.ResetColor();
                    start = match.Index + match.Length;
                }
 
                Console.WriteLine(sentence.Substring(start));
            }
 
            Console.ReadKey();
        }
    }
}
0
23.02.2020, 16:52
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2020, 16:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найдите в строке самое длинное слово, выведите на экран это слово и его длину
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово...

Проверьте, можно ли из букв, входящих в слово А, построить слово В.
На С# (Проверьте , можно ли из букв входящих в слово А, построить слово В. Буквы исходного слова...

Дано слово s. Получить слово t, путем прочтения s с конца
С заданием я справилась, но возник вопрос можно ли это как-то по-другому сделать: ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.