2011-11-06 71 views
0

我有一個asp.net和c#項目。在c#中打印字符串使用 r n開始新行

我需要打印該字符串時,我得到像這樣從服務器:

Working...: 0/0\r\nNavigating: 0/0 

應該在2個獨立的行被打印出來(使用\ r \ n)時,不應該它自動做到這一點?

我做錯了什麼?

我不能改變的字符串,但我用它的方式是: 我有一個EO進度條,我發送類似這樣的消息:

_progressBar.UpdateProgress(_count, progress.Message); 

,並顯示進度條下的消息。 消息是我發佈在頂部的字符串。

感謝

+1

HTML使用'
'換行符... – Yahia

+0

@Yahia,但我沒有使用任何html。我怎麼能得到該字符串開始一個新的行? – Ovi

+0

使用它而不是'\ r \ n' - 你把它標記爲ASP.NET,它通常輸出HTML,所以我假設你發送的字符串被解釋爲HTML客戶端... – Yahia

回答

0

使用<br/> - that is a line break in HTML ...

編輯 - 按評論:

string X = @"Working...: 0/0\r\nNavigating: 0/0"; 
string Y = X.Replace (@"\r\n", @"<br/>"); // Result is Working...: 0/0<br/>Navigating: 0/0 
+0

謝謝,但我沒有使用任何HTML。我怎麼能得到該字符串開始一個新的行? – Ovi

+0

@Ovi使用它來代替'\ r \ n' - 你把它標記爲ASP.NET,它通常輸出HTML,因此我假設你發送的字符串被解釋爲HTML客戶端... – Yahia

+0

你能否給我用
替換所有「\ r \ n」的確切語法?謝謝 – Ovi

3

好像你的字符串可能包含@"\r\n"代替"\r\n",在其中你必須自己解析轉義字符情況。

例如,以取代CR反斜槓-R和反斜線正通過LF(不是最有效的方式做到這一點):

string s0 = @"A\r\nB"; // s0 would print as: A\r\nB 
string s = s0.Replace(@"\r","\r").Replace(@"\n","\n"); 

現在s包含:

A 
B 
+0

謝謝,你能更具體地解釋我自己嗎? – Ovi

0

您可能正在發送反斜槓後跟n或r而不是\ r或\ n。 如果是這樣,你必須自己解析它們或得到輸出\ r和\ n

0

是的它是自動的。

using System; 
public class Test 
{ 
    public static void Main(string[] args) 
    { 
     string mesg = "Working...: 0/0\r\nNavigating: 0/0"; 
     Console.WriteLine(mesg); 
    } 
} 

C:\ TEMP> CSC test.cs中

微軟(R)的Visual C#2010編譯器版本4.0.30319。

版權(C)Microsoft Corporation。保留所有權利。

C:\ TEMP>測試

工作...:0/0

導航:0/0

C:\ TEMP

+0

那麼爲什麼在我的情況下,它不分隔線? – Ovi

+0

看起來你正在使用字符串mesg = @「正在工作...:0/0 \ r \ n導航:0/0」;在你的程序中。 –

1

服務器必須向客戶端發送後者瞭解的數據。 JSON,HTML,XML或任何您正在使用的數據類型。

從客戶端的角度來看\r\n只是一個像其他任何字符串。在這種情況下,您可能希望發送類似以下內容:

Working...: 0/0<br/>Navigating: 0/0 

並且打印它具有HTML。