我正在創建一個應用程序,它將MS Access表格和Excel工作表轉換爲.csv文件,然後區分Excel表格和Excel工作表。 .csv文件很好,但生成的差異文件在包含html的字段中存在錯誤(訪問表具有html字段)。我不確定這是否是特殊字符問題,因爲特殊字符首先不是創建.csv文件的問題,或者如果它是我區分這兩個文件的方式的問題。從.csv文件創建差異文件
我想這個問題的一部分可能是在訪問.csv文件中,包含html的字段被格式化,以便某些信息在單獨的行上,而不是在一行上全部,這可能會丟掉讀者,但我不知道如何解決這個問題。
這是創建的差異文件的代碼:
string destination = Form2.destination;
string path = Path.Combine(destination, "en-US-diff.csv");
string difFile = path;
if (File.Exists(difFile))
{
File.Delete(difFile);
}
using (var wtr = new StreamWriter(difFile))
{
// Create the IEnumerable data sources
string[] access = System.IO.File.ReadAllLines(csvOutputFile);
string[] excel = System.IO.File.ReadAllLines(csvOutputFile2);
// Create the query
IEnumerable<string> differenceQuery = access.Except(excel);
// Execute the query
foreach (string s in differenceQuery)
{
wtr.WriteLine(s);
}
}
csv更適合表格數據,在這種情況下,可能xml是一個更好的選擇,您可以使用CDATA字段的html代碼.. – Oscar
您需要一個關鍵的行。然後你可以創建一個自定義比較並將它傳遞給'Except()'。我已經做到了,WOW速度很快。 – Hogan
邏輯線與物理線。我也有過這個問題。我在第一次創建文件時在每條邏輯行的末尾放置標記來解決這個問題。在這方面的努力時間很短,我相信還有更好的辦法。奧斯卡指出,XML CDATA可能是首選方法。同時,如果您在創建文件時有控制權,請考慮哨兵。 –