2009-09-12 39 views
2

我想讀取文本文件並將其內容加載到我的頁面。我試圖用StreamReader讀取文件,然後將文本分配給標籤,但頁面中的文本只是一行。我的意思是文本文件中的行沒有在頁面中查看。我該怎麼辦?與asp.net的文本文件沒有行斷開

回答

0

HTML無法識別文本文件中的空格(換行符等)。如果要將內容呈現爲HTML,則需要將換行符轉換爲<br/>標記。

1

該文本文件使用\ n或\ r \ n獲取新行(\ n是一個換行符,\ r是一個回車 - 在打字機的那一天,您必須將酒吧拉回到左側被稱爲回車並將紙張向下滾動以開始在換行符的左側 - )。 Windows通常使用\ r \ n(儘管它取決於創建該文件的應用程序),但mac通常使用\ n。

另一方面,HTML使用<br/>標記換行(如果對當前html輸出執行viewource,則會看到換行符)。因此,您只需替換\ r \ n或與
即可。你可以這樣做:

yourstring = yourstring.Replace("\r\n", "<br/>"); 

,或者如果你不能肯定什麼是文件或兩個\ r \ n和\ n的使用中使用,你可以使用

yourstring = yourstring.Replace("\r\n", "<br/>").Replace("\n", "<br/>"); 

注意一個字符串是不可變的,因此像Replace這樣的方法會返回一個具有替換的字符串的副本。原始字符串將保持不變。

+0

感謝偶來 這就是我一直在尋找 另一個小問題.... 我可以從文件 例如文本格式(字體大小,粗體,顏色...) – Hany 2009-09-12 19:18:40

+0

一般是但它取決於文檔的格式(.rtf,.doc)等等......它將會付出多少努力,並且它可能會變得很複雜。一般來說,你想找到一個圖書館或爲你做這件事。 – olle 2009-09-12 19:27:03

+0

@Hany:普通文本文件不包含字體,粗體和顏色等信息。那麼你究竟在閱讀什麼文件格式。請在你的問題中提出這些細節。 – AnthonyWJones 2009-09-12 19:28:26

2

也許處理一個症狀而不是問題本身,您可以將文本文件的內容包裝在一個<PRE>標記中,其中與HTML中的大多數其他內容不同,空白符合。

+0

@AnthonyWJones:謝謝編輯。 – 2009-09-12 19:31:16

0

嘗試這樣:

string path = 'c:\myfile.txt': 
lblMyLabel.Text = String.Join('<br/>', File.ReadAllLines(path)); 
1

請試試這個

如果(System.IO.File.Exists(使用Server.Mappath( 「的test.txt」)))

{ 
     System.IO.StreamReader StreamReader1 = new 

System.IO.StreamReader(Server.MapPath(「test.txt」));

 lblMyLabel.Text= StreamReader1.ReadToEnd(); 

     StreamReader1.Close(); 
    }