Есть ли способ найти текст, загруженный пользователем из файла, по определенному слову и раскрасить его? - PullRequest
1 голос
/ 15 мая 2019

Пользователь указывает путь к файлу, который затем вставляет весь читаемый контент в строку, но теперь у меня возникают проблемы с поиском в этой строке слова, введенного пользователем, и по-разному его окрашивают при наличии совпадений.

 Console.WriteLine("Please enter the path of the document to be searched");

        do
        {

            text = Helper.TryToReadFile();
        } while (text == null);

        Console.WriteLine("Choosen Text:\n---------------------------------------\n");
        Console.WriteLine(text);
        Console.WriteLine("---------------------------------------\n");
        //
        Console.WriteLine("Would you like to search for whole words ?");
        bool decisionForWholeWords = Helper.ConvertToBool(Console.ReadLine());

        Console.WriteLine("Should the spelling be observed ?");
        bool decisionForSpelling = Helper.ConvertToBool(Console.ReadLine());

1 Ответ

3 голосов
/ 15 мая 2019

Простая и базовая логика

  public static void Main(string[] args)
        {
            string txt = "this is a an example string";
            string wordToFind = "example string";
            bool phraseFound = false;
            var splittedTxt = txt.Split(' ');
            var wordToFindList = wordToFind.Split(' ');
            foreach (var item in splittedTxt)
            {
                if (wordToFindList.Any(item.Contains))
                {
                    Console.BackgroundColor = ConsoleColor.Blue;
                    Console.ForegroundColor = ConsoleColor.White;
                    phraseFound = true;
                }
                Console.Write(item);
                if (phraseFound) // reset color
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.Gray;
                    phraseFound = false;
                }
                Console.Write(" ");
            }


            Console.ReadLine();
        }

пример вывода enter image description here

...