我一直在制作一个与游戏我和我的一些朋友一起玩的程序,到目前为止我所做的一切都是制作界面,我想我会提前寻求帮助,因为我知道需要它。我想制作一个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需要按时间一起获得比率(点击计算比率按钮),所有数据从名称到比率都会出现在按钮下方的文本框中,下一个按钮会循环到下一个按钮字符。 非常感谢任何帮助,提前谢谢。
答案 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(或类似的东西)写入字符串。这样你就释放了文件句柄。然后,您可以遍历从文件中读取的字符串中的字符,并执行您想要的任何操作。