2011-06-09 34 views
3
人物

我使用刪除「隱形」控制在VB.Net

Dim fileReader As String 
fileReader = My.Computer.FileSystem.ReadAllText(file) 

文件包含幾行文本目前在讀在VB.Net一個文本文件,當我在文本文件中讀取,它知道他們在不同的線路上並相應地打印出來。

但是,當我嘗試將fileReader分割成不同行的數組時,即使使用Split(ControlChars.Cr)Split(ControlChars.NewLine),換行符似乎仍留在那裏。它成功地將其拆分成單獨的線,但是當我展示它,它將「推動」下的文本行,像換行仍然存在......

沒有人有是怎麼回事任何想法以及如何刪除這些「隱形」控制字符。

文本文件:

Test1的
的Test2
Test3的
TEST4

的FileReader:

Test1的
的Test2
TEST3
TEST4

線()打印

Test1的

的Test2

TEST3

TEST4

回答

4

使用trim()在每一行,它會刪除多餘的空白。

+0

非常感謝! – 2011-06-09 21:15:57

+0

不客氣! – Cyclone 2011-06-09 21:17:03

2

有System.IO.File類有一個ReadAllLines方法實際上將還給你一個字符串數組,每行一個。

如果該方法不起作用,要麼,我會研究到底是什麼字節是造成你的問題。在監視窗口中,您可以執行System.Text.Encoding.ASCII.GetBytes(sampleLine)並仔細檢查您正在處理的內容。

我假設你正在使用ASCII編碼,如果沒有,你需要換出ASCII與正確的選項,然後修改您的文件中讀取基於該編碼讀取,以及。

1

如所提到的使用方法Readalllines有它自動分割。

您所遇到的問題是PC ASCII文件通常以一個回車和新行拆分,拆分就只是一個會離開對方。你可以像前面提到的那樣拆分和修剪,或者使用另一個拆分字符串而不是字符的拆分。

暗淡S()作爲字符串=斯普利特(的FileReader,vbCrLf)

修剪將從數據刪除空格爲好,根據您的情況,可能是你的問題。

0

最近出現類似問題。 Trim()不起作用,因爲在進行分割(或使用File.ReadAllLines)之後,額外的行已經存在。下面是我工作:

Dim allText As String = System.IO.File.ReadAllText(filePath) 
    allText = allText.Replace(Chr(13), "") 
    Dim lines As String() = allText.Split(vbLf) 

CHR(13)是使用斯普利特()或File.ReadAllLines導致額外的線路控制-M字符。