´

Caracter de Salto de linea - C#

Puedes ver el articulo original en  mi blog:

http://juank.black-byte.com/c-caracter-salto-linea/

 ---

Un salto de linea en windows no es es realmente un caracter sino que realmente son dos caracteres el 13 y luego el caracter 10.  En detalle: \r = 13 = CR = Carriage return = Retorno de carro \n = 10 = LF = Line Feed       = Avance de linea


Mientras que en unix podria ser igual o diferente dependiendo de la configuracion.

La más usual es  que en unix sea solo CR, razon por la cual cuando abres en windows un archivo de texto creado en unix , ves que te sale todo en una sola linea ( falta el LF  - el salto de linea).

Como ves esto depende de la plataforma asi que lo ideal es que en nuestros programas que usen el CLR  es hacer uso de: System.Environment.NewLine


En las base de datos utiliza necesariamente CHR(13)+CHR(10)  ya que esto te dara compatibilidad con varias plataformas. Complemento: oscardo comenta en este hilo este aporte de gran utilidad, que puede ser útil cuando se esta trabajando con Web Mobile: char.ConvertFromUtf32(13) + char.ConvertFromUtf32(10)

Happy learning!

Posted: 18/8/2009 15:36 por Juan Carlos Ruiz Pacheco | con 2 comment(s) |
Archivado en: ,
Comparte este post:

Comentarios

Pedro ha opinado:

En VisualBasic existe la clase ControlChars que  expone entre otras la constante ControlChars.CrLf para el retorno de carro + salto de línea.

Para poder usarlo con C# hay que hacer un import del namespace Microsoft.VisualBasic (y por tanto referenciar Microsoft.VisualBasic.dll) . Nunca he entendido porque esta clase se ha ubicado en una librería especifica para VB y no está disponible de forma predeterminada para el resto de los lenguajes.

Saludos,

Pedro  

# August 20, 2009 9:58 AM

Juan Carlos Ruiz Pacheco ha opinado:

Hola, realmente esta libreria solo existe para VB porque son los desarrolladores de VB los que buscaran funcionalidades muy parecidas a las que ya traían en VB 6.0... la mayoria de las cosas de allí no las necesitan otros developers porque hay maneras mas estructuradas de hacerlas a través del framework o del propio lenguaje en si.

Mira que CrLf es obligatoriamente un "ENTER" de dos caracteres sin importar en que ambiente estes... no es algo muy estandard.

el ejemplo que has colocado es exactamente equivalente a System.Environment.NewLine como lo he descrito en el post, salvo porque este ultimo si es dependiente del  "ENTER" de cada plataforma, es decir a veces es solo "\r" y a veces es "\r\n"

# August 20, 2009 3:48 PM