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