2010-01-25 14 views
0

我試過string[] file = File.ReadAllLines(file_name)來讀取一個word文件。如何在開始時刪除特殊字符,同時在C中使用File.ReadAllLines#

在調試模式中,我發現字符串數組文件的前幾個參數是具有像

"��ࡱ�0\0\0\0>\0\0��\t\0\0\0\0\0"值。我如何擺脫這一點。

在某些文件中,文件[]的前3個參數用這些填充,而對於少數文件,只有第一個參數填充了這些不可用的字符。

問題是什麼,我該如何擺脫這個。但我的文件在開始時甚至沒有空白行。

回答

3

問題是你沒有用正確的編碼打開文件。 Here是從C#打開和創建Word文檔的指南。

1

如果您使用的是.NET 3.5,那麼我建議你使用LINQ where子句只返回您感興趣的線路。

string[] file = File.ReadAllLines(file_name).Where(line => !line.StartsWith("��")).ToArray(); 

您還可以使用某種形式的規則表達式而不是line.StartsWith()方法。

注:如果您正在閱讀的Microsoft Office Word文件,我建議您使用COM互操作或第三方庫讀取MS Word文檔(你會發現它遠比試圖解析文件更容易你自己)。

2

File.ReadAllLines適用於文本文件。 Word文件是而不是文本文件。要閱讀Word文件,您可能需要一個庫。

1

Word文件不是簡單的文本文件,因此將嵌入額外的二進制信息。

如果你想正確提取文本,而不是File.ReadAllLines,你應該使用一個庫來讀取文檔。

這裏是這樣的librariescouple