Программа, которая читает файл и пишет новую информацию - PullRequest
0 голосов
/ 21 мая 2019

Таким образом, в основном у меня есть этот текстовый файл данных, который содержит имена и рост баскетболистов, то есть «Том 6 футов». Из этого текстового файла с именами и высотой баскетболистов я пытаюсь написать код, который проходит через каждую строку файла текстовых данных и отделяет числа от строк, и обнаруживает, что если игрок больше 6 футов, то этот игрок сделал это для команды и отправить тот игрок в другой текстовый файл под названием сделал это. Знайте, что результат был объяснен. У меня возникли проблемы с попыткой создать код, позволяющий отделить число от строки, и распознать игрока, если игрок ростом 6 футов или более, и поместить его в новый файл текстовых данных.

Вот текстовый файл данных, содержащий имена и высоты, необходимые для программы: https://drive.google.com/file/d/10qLuyOzrV2EhFsQ9g4-28rLGIlLFGoDt/view?usp=sharing

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

Вот код, который у меня сейчас есть:

using System;

namespace basketball
{
    class Program
    {
    static void Main(string[] args)
    {

        // This section shows how to read a file called Sample.txt stored in the Debug folder of the program folder 
        string fileName = @"Sample.TXT";
        Console.WriteLine("The contents of the file {0} is:", fileName);

        string[] dataFromFile = new string[100];
        int index = 0;

        System.IO.StreamReader streamReader = new System.IO.StreamReader(fileName);
        using (streamReader)
        {
            string fileContents = streamReader.ReadToEnd();

            dataFromFile[index] = fileContents;

            Console.WriteLine(dataFromFile[index]);
            index++;
        }

        Console.WriteLine("Now Line By Line:");
        System.IO.StreamReader reader = new System.IO.StreamReader(fileName);
        using (reader)
        {
            int lineNumber = 0;
            string line = reader.ReadLine();
            while (line != null)
            {
                lineNumber++;
                Console.WriteLine("Line {0}: {1}", lineNumber, line);
                line = reader.ReadLine();
            }
        }

        // This section shows how to write a file called madeit.txt stored in the console programs debug folder 

        string fileName2 = @"madeit.txt";
        System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(fileName2);
        using (streamWriter)
        {
            for (int number = 1; number <= 20; number++)
            {
                streamWriter.WriteLine("This is line number : " + number);
            }
        }
        Console.WriteLine("File is written!");

    }
}
}

Это то, как выглядит вывод консоли, вот ссылка: https://drive.google.com/file/d/13_WKzfVriXlnfRcaqaPWbNFkc4Xix5z2/view?usp=sharing

1 Ответ

0 голосов
/ 21 мая 2019

Я рекомендую использовать регулярное выражение.Пожалуйста, посмотрите этот пример:

    List<string> players = new List<string> {
        @"Grady is 6'1"" ft",
        @"Robert is 5'10"" ft",
        @"Riley is 7 ft",
        @"Sam is 4'9"" ft",
        @"Greg is 6 ft",
        @"Raheem is 6'3"" ft",
        @"Connor is 5'11"" ft"
    };
    const string pattern = @"(.+) is (\d+)('\d+"")? ft";
    var regex = new Regex(pattern);
    foreach (var player in players)
    {
        var match = regex.Match(player);
        if (match.Success)
        {
            bool sixFeetOrTaller = false;
            var name = match.Groups[1].Value;
            var inchesStr = match.Groups[2].Value;
            int inches;
            if (int.TryParse(inchesStr, out inches))
            {
                if (inches >= 6)
                {
                    sixFeetOrTaller = true;
                }
            }
            if (sixFeetOrTaller)
            {
                Console.WriteLine(name + " made it to the team!");
            }
            else
            {
                Console.WriteLine(name + " did not make it to the team");
            }
        }
        else
        {
            Console.WriteLine("Unable to parse line " + player);
        }
    }

Вывод:

Grady made it to the team!
Robert did not make it to the team
Riley made it to the team!
Sam did not make it to the team
Greg made it to the team!
Raheem made it to the team!
Connor did not make it to the team
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...