0
我试图从文本文件中读取数据,创建一些对象并使用它。阅读文本文件并将其转换为对象
我的文字内容其实是这样的。
Server : V2JJFERPP98
ERROR 0 : 5039
ERROR 3 : 0
ERROR 4 : 1915
ERROR 8 : 0
ERROR 9 : 0
Server : V2JJFERPP99
ERROR 0 : 0
ERROR 3 : 0
ERROR 4 : 15
ERROR 8 : 0
ERROR 9 : 1
Server : V2JJFERPP100
ERROR 0 : 0
ERROR 3 : 1
ERROR 4 : 0
ERROR 8 : 0
ERROR 9 : 0
V2JJFERPP98 | Error parsing database
V2JJFERPP100 | can't create lof file
V2JJFERPP100 | can't read backup_01_03_2017
基本上,我的目标是在文件中获取与错误报告一样多的对象。然后,在第二部分获取所有cronjob错误。
我已经为第一部分创建了一个对象,就像这样。
private string server { get; set; }
private int error0 { get; set; }
private int error3 { get; set; }
private int error4 { get; set; }
private int error8 { get; set; }
private int error9 { get; set; }
但现在,我不知道如何继续获取对象。
首先,我正在考虑读取整个文件,并将所有内容放入var中,然后使用正则表达式来检查内容。
我也检查了读取每一行的可能性,并根据行的开始,开始创建一个对象。
对于这两种方法,我不知道如何做到这一点。
我已经尝试了很多东西,但我认为我是100%折扣,它听起来不是很复杂,但找不到合适的方法来做到这一点。
string [] lines = File.ReadAllLines(missionFilePath);
foreach (string line in lines)
{
// for each line, we gonna create a new MissionState object
if (line.StartsWith("Serveur"))
{
// Server : V2JJFERPP98
var server = line.Substring(9);
// and now, how to get error, and know when the new/next object come?
}
}
你为什么不考虑使用文本文件分析器?那里有很多东西。快速搜索产生了这个,例如https://textfileparsers.codeplex.com/ –
“如何获取错误” - 阅读下一行。 “如何知道下一个对象何时到来” - 在你的例子中它们被空行分割。 – Evk
@ rory.ap我会尝试这种类型的,但是当它发生cronjob日志时,它不再是文件的结尾,而是尴尬。但我会试一试,如果这是最好的办法。 Evk:同上,我不确定日志结束。另外,如何正确地得到这些错误和服务器的对象(猜我缺少算法的一些技巧) –