我正在使用此库http://www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library来录制宏。 我想知道如何在文本文件中保存“事件”以便以后加载它们?
所以,这是列表:
List<MacroEvent> events = new List<MacroEvent>();
我需要做些什么才能将数据存入文本文件?
答案 0 :(得分:3)
您有3个选项:
使用ToString()方法将MacroEvent导出为带格式的文本。您可能需要覆盖默认实现。确保提供您需要的所有信息,否则您将无法在以后检索它们。然后需要读取和解析文件来加载数据。
使用内置的.net XML序列化功能。写/读操作很简单。
如果您不打算在其他应用程序上使用数据,为什么不使用BinarySerializer?到目前为止,最好的方法,但生成的文件将不是文本格式。
http://www.codeproject.com/Articles/1789/Object-Serialization-using-C
答案 1 :(得分:0)
如果MacroEvent
有ToString()
方法,您只需遍历列表并打印到文本文件即可。
答案 2 :(得分:0)
TextWriter tw = new StreamWriter("myFile.txt");
foreach (MacroEvent item in events)
{
tw.WriteLine(item.ToString());
}
tw.Close();
答案 3 :(得分:0)
我建议使用扩展方法。我对MacroEvent
一无所知,并且我不打算从代码项目中下载代码只是为了看看,但这可能是它的样子。
public static class MacroEventExtensions
{
public static void WriteToFile(this List<MacroEvent> events, string path)
{
StringBuilder fileContents = new StringBuilder();
foreach (var e in events)
{
fileContents.AppendLine("{0}::{1}",
[some event id from the object],
[some event message from the object]);
}
File.WriteAllText(path, fileContents.ToString());
}
}
然后在上面的代码中你只需要打电话:
events.WriteToFile([some path])