imprimiendo cadena en c # usando \ r \ n para comenzar una nueva línea

Tengo un proyecto asp.net y c #.

Necesito imprimir esta cadena, la obtengo así del servidor:

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

Debería imprimirse en 2 líneas separadas (usando \ r \ n), ¿no debería hacerlo automáticamente?

¿Estoy haciendo algo mal?

No puedo cambiar la cadena, pero la forma en que la uso es: tengo una barra de progreso EO que envío un mensaje como este:

_progressBar.UpdateProgress(_count, progress.Message);

Y muestra el mensaje debajo de la barra de progreso. El mensaje es la cadena que publiqué en la parte superior.

Muchas Gracias

preguntado el 06 de noviembre de 11 a las 15:11

Usos de HTML <br/> para saltos de línea ... -

@Yahia, pero no estoy usando ningún HTML. ¿Cómo puedo hacer que esa cadena comience una nueva línea? -

úsalo en lugar de \r\n - etiquetó esto como ASP.NET que generalmente genera HTML, así que supongo que la cadena que envía se interpreta como HTML del lado del cliente ... -

Estoy confundido, SI no puede cambiar la cadena, ¿qué espera entonces como respuesta (no cambiar nada significa que el resultado no cambiará normalmente)? -

5 Respuestas

Parece que tu cadena puede contener @"\r\n" en lugar de "\r\n", caso en el que tendría que analizar los caracteres de escape usted mismo.

Por ejemplo, para reemplazar la barra invertida-r por CR y la barra invertida-n por LF (no es la forma más eficiente de hacerlo):

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

Ahora s contiene:

A
B

respondido 06 nov., 11:19

Gracias, ¿puede ser más específico sobre cómo lo analizo yo mismo? - Ovi

El servidor debe enviar al cliente datos que este último comprenda. JSON, HTML, XML o cualquier tipo de datos con el que esté trabajando.

Desde el punto de vista del cliente \r\n es solo una cuerda como cualquier otra. En este caso, es posible que desee enviar algo como:

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

E imprimir tiene HTML.

respondido 06 nov., 11:19

utilizado <br/> - eso es un salto de línea en HTML...

EDITAR - según el comentario:

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

respondido 06 nov., 11:19

Gracias, pero no estoy usando ningún HTML. ¿Cómo puedo hacer que esa cadena comience una nueva línea? - Ovi

@Ovi lo usa en lugar de \r\n - etiquetó esto como ASP.NET que generalmente genera HTML, así que supongo que la cadena que envía se interpreta como HTML del lado del cliente ... - Yahia

¿Puede darme la sintaxis exacta para reemplazar todo "\ r \ n" con ? Gracias - Ovi

Probablemente esté enviando una barra invertida seguida de una nor y no de una \ r o \ n. Si es así, tiene que analizarlos usted mismo o hacer que la salida sea \ r y \ n

respondido 06 nov., 11:19

Sí, es automático.

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

Microsoft (R) Visual C # 2010 Compilador versión 4.0.30319.

Copyright (C) Microsoft Corporation. Reservados todos los derechos

C: \ temp> Prueba

Trabajando ...: 0/0

Navegando: 0/0

C: \ temp

respondido 06 nov., 11:19

Entonces, ¿por qué en mi caso no separa las líneas? - Ovi

Parece que está utilizando string mesg = @ "Trabajando ...: 0/0 \ r \ nNavigating: 0/0"; en su programa. - Upul Bandara

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.