有没有办法以编程方式将光标指向特定的单词?

时间:2019-05-21 12:38:05

标签: c# console

我目前有一个控制台应用程序,正在通过命令行使用一个文件。给定的文件现在变成一个巨大的字符串。该字符串被拆分为单词数组。 使用foreach搜索该数组作为我的搜索词。现在我的问题是如何解决将焦点直接放在找到的第一个单词上并选择该单词的问题。

var splittedTxt = text.Split(' ');

        if (decisionForWholeWords == true && decisionForSpelling == false)
        {
            foreach (var item in splittedTxt)
            {
                if (wordToFind.ToLower() == item.ToLower())
                {
                    Console.BackgroundColor = ConsoleColor.Red;

                    wordFound = true;
                }
                Console.Write(item);
                if (wordFound) // reset color
                {
                    Console.BackgroundColor = ConsoleColor.Black;

                    wordFound = false;
                }
                Console.Write(" ");
            }
        }

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法设置光标:

Console.SetCursorPosition(x, y);

或通过使用left和top属性:

Console.CursorLeft = x;
Console.CursorTop = y;

您必须弄清楚单词的位置,然后将光标设置到该位置。

答案 1 :(得分:1)

if (decisionForWholeWords == true && decisionForSpelling == false)
{
        int index = 0;
        foreach (var item in splittedTxt)
        {
            //do what you want the index.
            if (wordToFind.ToLower() == item.ToLower())
            {
                Console.BackgroundColor = ConsoleColor.Red;

                wordFound = true;
            }
            Console.Write(item);
            if (wordFound) // reset color
            {
                Console.BackgroundColor = ConsoleColor.Black;

                wordFound = false;
            }
            Console.Write(" ");

            index += item.Length;
            index += 1; //for the space
        }
    }