Masba Uddin Khandaker Ответов: 1

Как выполнить поиск слова в текстовом файле по горизонтали и вертикали на языке Си#


У меня есть один текстовый файл.Теперь мое требование состоит в том, чтобы искать слово на основе пользовательского ввода в любом направлении( горизонтально и вертикально).

namespace WordSearch
{
    class Program
    {
       

        public static void Main()
        {

            // Start To Show the file 
            FileStream inFile1 = new FileStream(@"D:\Tricube_Task\Code_Fun\Hello.txt", FileMode.Open, FileAccess.Read);
            using (StreamReader file = new StreamReader(inFile1))
            {
                int counter = 0;
                string ln;

                while ((ln = file.ReadLine()) != null)
                {
                    Console.WriteLine(ln);
                    counter++;
                }
                //file.Close();
                Console.WriteLine($"File has {counter} lines.");
            }

            // End To Show the File


            

            // Start To show the word in the file

            //the path of the file
            FileStream inFile = new FileStream(@"D:\Tricube_Task\Code_Fun\Hello.txt", FileMode.Open, FileAccess.Read);
            StreamReader reader = new StreamReader(inFile);

            string record;
            string input;

            Console.Write("Enter The word:");// User Input
            input = Console.ReadLine();
            try
            {
                //the program reads the record and displays it on the screen
                record = reader.ReadLine();

                while (record != null)
                {                  

                    if (record.Contains(input))
                    {
                        Console.WriteLine(record);
                    }
                    record = reader.ReadLine(); 
                }
            }

            finally
            {
                //after the record is done being read, the progam closes
                reader.Close();
                inFile.Close();
            }


            // End Show the word in the file


            // Exit from application
            Console.Write("Press 'Q' to Quit from Program.. ");            
            while (Console.ReadKey().Key != ConsoleKey.Q)
            {

            }
            Console.ReadLine();

            // Exit from application

        }


    }


}


Что я уже пробовал:

Из этого кода я могу читать слово горизонтально. Нужно улучшать код для любого направления.

Richard MacCutchan

Вы можете найти слово в текстовом файле, только прочитав каждую строку и выполнив поиск по горизонтали в этой строке. Концепция вертикального поиска не имеет смысла.

ZurdoDev

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

Richard MacCutchan

Я никогда об этом не думал. Несмотря на то, что всю жизнь был крестоносцем.

Sandeep Mewara

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

ZurdoDev

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

1 Ответов

Рейтинг:
0

Gerry Schmitz

Вертикальный, горизонтальный, диагональный ... ваша жизнь будет проще, если вы просто прочитаете все текстовые строки в коллекцию (список; массив).

Строки можно рассматривать как массивы символов: strings s = "ABC"; var ch = s[1];

(Затем есть: StartsWith; EndsWith; Contains; Substring, IndexOf; LastIndexOf; ...)

У вас есть вертикальный (элемент списка[]) и горизонтальный (s[1]).

С диагональю вы изменяете оба одновременно.