2011-11-06 69 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。