Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从streamreader读取多个配置文件并给出输出_C#_Streamreader - Fatal编程技术网

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

C#从streamreader读取多个配置文件并给出输出,c#,streamreader,C#,Streamreader,我一直在开发一个程序,该程序与我和我的一些朋友玩的一个游戏一起进行,到目前为止,我所做的只是制作界面,我想我会提前寻求帮助,因为我知道我需要它。我想制作一个GUI,从一个文本文件中读取一个字符的数据,用它填充文本框,并能够用其中两个框进行等式运算,然后通过点击“下一步”从该文本文件移动到另一个字符。 读入数据的示例为: Hark我可能会将File.ReadAllText(或类似的东西)转换成字符串。这样就可以释放文件句柄。然后,您可以循环从文件中读取的字符串中的字符,并执行任何您想执行的操作。

我一直在开发一个程序,该程序与我和我的一些朋友玩的一个游戏一起进行,到目前为止,我所做的只是制作界面,我想我会提前寻求帮助,因为我知道我需要它。我想制作一个GUI,从一个文本文件中读取一个字符的数据,用它填充文本框,并能够用其中两个框进行等式运算,然后通过点击“下一步”从该文本文件移动到另一个字符。 读入数据的示例为:


Hark我可能会将File.ReadAllText(或类似的东西)转换成字符串。这样就可以释放文件句柄。然后,您可以循环从文件中读取的字符串中的字符,并执行任何您想执行的操作。

使用XML序列化/反序列化将更加容易

这是一个完整的演示。它创建一个包含两个字符的列表,将其序列化为XML,然后将其反序列化回一个新列表。这至少可以解决it的存储方面的问题

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

}
}
使用System.Collections.Generic;
使用System.IO;
使用System.Xml.Serialization;
命名空间XmlDemo
{
公共类CharacterAttributes
{
公共字符串名称{get;set;}
公共整数强度{get;set;}
公共int灵活性{get;set;}
}
班级计划
{
静态void Main(字符串[]参数)
{
var characters=新列表
{
新字符属性
{
Name=“Throgdor the Destroyer”,
强度=5,
灵巧度=10
}, 
新字符属性
{
Name=“船长真棒”,
强度=100,
灵巧度=9
}
};
序列化XML(字符);
var charactersreload=DeserializeFromXML(@“C:\temp\characters.xml”);
}
静态公共void序列化XML(列表字符)
{
var serializer=newxmlserializer(typeof(List));
var textWriter=newstreamwriter(@“C:\temp\characters.xml”);
使用(文本编写器)
{
序列化程序。序列化(textWriter,字符);
textWriter.Close();
} 
}
公共静态列表反序列化FromXML(字符串路径)
{
var serializer=newxmlserializer(typeof(List));
var textReader=新的StreamReader(路径);
var deserializedCharacters=新列表();
使用(文本阅读器)
{
deserializedCharacters=序列化程序。将(textReader)反序列化为列表;
}
返回反序列化的字符;
}
}
}

请给出一些建议。我知道如何从一个字符(而不是多个字符)读入数据。我只是想:将数据存储在XML结构中,然后加载到XmlDocument中……可能有点过头了。。。。
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;
    }

}
}