Игра рекордов с именами - PullRequest
0 голосов
/ 26 января 2012

Каким образом кто-то будет делать код для чтения с высокими показателями, который включает имя в Windows Form в C #?Например: Steve 600 Я могу получить часть чисел с помощью StreamReader / Streamwriter, но я не могу найти способ включить имя.Есть предложения?

Ответы [ 4 ]

1 голос
/ 26 января 2012

Вы можете разделить их специальным разделителем, таким как $ Также не разрешайте пользователю использовать ваш разделитель в имени, поэтому у вас будет:

Стив $ 600

Затем вы можете использовать метод StreamReader.ReadLine, чтобы получить эту строку строки, а затем использовать string.Split для разделения на разделитель.

1 голос
/ 26 января 2012

Самый простой способ - записать каждое значение в отдельной строке, поэтому у вас может быть:

Стив
600
Джордж
500
Питер
200

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

0 голосов
/ 15 марта 2013

Если вы не можете использовать StreamReader или StreamWriter, вы можете использовать поле ввода для пользователя, чтобы ввести свое собственное имя. например:

string sName;


            //asks user to input their name before the game begins
            sName = Microsoft.VisualBasic.Interaction.InputBox("Please enter your name:", "What is Your Name?", "");
            //if no name is entered, they are asked again

                   while (sName == "")
                    {
                    MessageBox.Show("Please enter your name.");
                    sName = Microsoft.VisualBasic.Interaction.InputBox("Please enter your name:", "What is Your Name?", "");
                     }

Помимо объявления переменной, вам также необходимо включить

using Microsoft.VisualBasic;

вверху вашей страницы. И дополнительно вам нужно будет добавить ссылку на страницу. Справа в обозревателе решений, если щелкнуть правой кнопкой мыши на ссылке, добавить ссылку, в .NET вы найдете «Microsoft.VisualBasic»

Вы можете поместить действительный код Inpuxbox в любое место вашего кода, и вы можете с легкостью повторно использовать и редактировать его.

0 голосов
/ 26 января 2012

Вы, вероятно, хотите загрузить оценки из другой игры с фиксированным форматом?

если формат - NAME SCORE, мы ищем последний пробел, поскольку имя, вероятно, также может содержать пробелы и разбивать строку в имении набери парт.

    private List<Score> ReadScores(string filename) {
        List<Score> scores = new List<Score>();

        using (var sr = new StreamReader(filename)) {
            string line = "";
            while (!string.IsNullOrEmpty((line = sr.ReadLine()))) {
                int lastspace = line.LastIndexOf(' ');
                string name = line.Substring(0, lastspace);
                string pointstring = line.Substring(lastspace + 1, line.Length - lastspace - 1);

                int points = 0;
                if (!int.TryParse(pointstring, out points))
                    throw new Exception("Wrong format");

                scores.Add(new Score(name, points);

            }
        }

        return scores;
    }

    class Score {
        public string Name { get; set; }
        public int Points { get; set; }

        public Score(string name, int points) {
            this.Name = name;
            this.Points = points;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...