C#从streamreader读取多个配置文件并提供输出

时间:2011-06-05 03:40:03

标签: c# streamreader

我一直在制作一个与游戏我和我的一些朋友一起玩的程序,到目前为止我所做的一切都是制作界面,我想我会提前寻求帮助,因为我知道需要它。我想制作一个GUI,它可以从文本文件中读取一个字符的数据,用它填充文本框,并能够用两个方框进行方程式,然后通过点击下一个来移动到该文本文件中的另一个字符。 样本读入数据将是: Interface

   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”“name”只会由data.Readline()填充;来自streamreader,但HP和armor需要按时间一起获得比率(点击计算比率按钮),所有数据从名称到比率都会出现在按钮下方的文本框中,下一个按钮会循环到下一个按钮字符。 非常感谢任何帮助,提前谢谢。

2 个答案:

答案 0 :(得分:1)

使用XML序列化/反序列化可以轻松实现它。

这是一个完整的演示。它创建一个包含两个字符的列表,将其序列化为XML,然后将其反序列化为新的List。至少,这将照顾它的存储方面。

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;
    }

}
}

答案 1 :(得分:0)

我可能会将File.ReadAllText(或类似的东西)写入字符串。这样你就释放了文件句柄。然后,您可以遍历从文件中读取的字符串中的字符,并执行您想要的任何操作。