C # Читайте в нескольких профилях из Streamreader и дать выходные данные - PullRequest
0 голосов
/ 05 июня 2011

Я работаю над программой, которая идет вместе с игрой, в которую играют я и некоторые из моих друзей, все, что я до сих пор делал, - это создание интерфейса, подумал, что я буду просить о помощи заранее, потому что я знаю, что она мне нужна. Я хотел создать графический интерфейс, который бы считывал данные персонажа из текстового файла, заполнял им текстовые поля и мог составлять уравнения с двумя полями, а затем переходить к другому символу из этого текстового файла, нажимая клавишу «Далее». Пример чтения в данных будет: Интерфейс

   Hark  <- new character
   5
   2
   6
   40.0
   12.00
   Caro <- new character
   6
   1
   8
   38.0
   10.00
   Ethan <- new character
   4
   5
   42.0
   15.00

(Выше на самом деле не код, а то, как он размещен) Таким образом, «имя» через «char num» будет просто заполнено данными .Readline (); из потокового ридера, но HP и броня должны быть отредактированы вместе, чтобы получить соотношение (нажатие на кнопку вычисления соотношения), все данные от имени к отношению будут помещаться в текстовое поле под кнопками, следующая кнопка будет циклически переходить к следующей персонаж. Любая помощь будет высоко ценится, спасибо заранее.

Ответы [ 2 ]

1 голос
/ 05 июня 2011

С сериализацией / десериализацией XML будет намного проще.

Вот полная демонстрация. Он создает список из двух символов, сериализует его в XML, а затем десериализует его обратно в новый список. Это по крайней мере позаботится о аспекте хранения.

using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;

namespace XmlDemo
{

public class CharacterAttributes
{
    public string Name { get; set; }
    public int Strength { get; set; }
    public int Dexterity { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        var characters = new List<CharacterAttributes>
                             {
                                 new CharacterAttributes
                                     {
                                         Name = "Throgdor the Destroyer",
                                         Strength = 5,
                                         Dexterity = 10
                                     }, 
                                new CharacterAttributes
                                    {
                                          Name = "Captain Awesome",
                                          Strength = 100,
                                          Dexterity = 9
                                    }
                             };
        SerializeToXML(characters);
        var charactersReloaded = DeserializeFromXML(@"C:\temp\characters.xml");

    }

    static public void SerializeToXML(List<CharacterAttributes> characters)
    {
        var serializer = new XmlSerializer(typeof(List<CharacterAttributes>));
        var textWriter = new StreamWriter(@"C:\temp\characters.xml");
        using (textWriter)
        {
            serializer.Serialize(textWriter, characters);
            textWriter.Close();                
        } 

    }

    public static List<CharacterAttributes> DeserializeFromXML(string path)
    {
        var serializer = new XmlSerializer(typeof(List<CharacterAttributes>));
        var textReader = new StreamReader(path);
        var deserializedCharacters = new List<CharacterAttributes>();
        using (textReader)
        {
            deserializedCharacters = serializer.Deserialize(textReader) as List<CharacterAttributes>;    
        }
        return deserializedCharacters;
    }

}
}
0 голосов
/ 05 июня 2011

Я бы, вероятно, сделал File.ReadAllText (или что-то в этом роде) в строку. Таким образом, вы освобождаете дескриптор файла. Затем вы можете зацикливать символы в строке, которую вы читаете из файла, и делать все, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...