我需要讀取多個csv文件並將它們合併。合併數據用於生成圖表(使用.NET圖表控件)。閱讀具有不同標題/列的csv日誌文件
到目前爲止,我用一個簡單的StreamReader做到了這一點,並添加一切一個數據表:
while (sr.Peek() > -1)
{
strLine = sr.ReadLine();
strLine = strLine.TrimEnd(';');
strArray = strLine.Split(delimiter);
dataTableMergedData.Rows.Add(strArray);
}
但現在有問題,該日誌文件可以改變。正如你在這裏看到的,更新的日誌文件有更多的列:
我目前的程序現在不起作用,我正在尋求建議如何做到這一點。性能很重要,因爲每個日誌文件都包含大約1500行和最多100列,並且日誌文件合併到一年期間(等於365個文件)。
我會這樣做:創建一個DataTable,它應該在最後包含所有數據,並將每個日誌文件讀入單獨的DataTable。在每次讀取操作後,我會將單獨的DataTable添加到「大」DataTable中,檢查列是否已更改,並添加新列(如果有)。
但是我擔心使用DataTable會影響性能。
注意:我正在用winforms做這件事,但我認爲這無關緊要。
編輯:試過CsvReader但這比我目前的解決方案慢大約4倍。