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:同上,我不確定日誌結束。另外,如何正確地得到這些錯誤和服務器的對象(猜我缺少算法的一些技巧) –