2012-06-11 29 views
11

Estoy usando C# y estoy tratando de generar algunas líneas en un archivo ASCII. El problema que estoy teniendo es que mi servidor Linux es ver estos archivos como:Cómo escribir todas las líneas en C# sin CRLF

ASCII text, with CRLF line terminators 

necesito este archivo para ser justo:

ASCII text 

la CRLF está causando algunos problemas y esperaba allí era una forma en C# para simplemente crear el archivo formateado de la manera que quiero.

básicamente estoy utilizando este código:

string[] lines = { "Line1", "Line2" }; 
File.WriteAllLines(myOutputFile, lines, System.Text.Encoding.UTF8); 

¿Hay una manera fácil de crear el archivo sin las terminaciones de línea CRLF? Probablemente pueda ocuparme de eso en el lado de Linux, pero preferiría simplemente crear el archivo en el formato correcto desde el principio.

+0

por curiosidad: ¿tiene mucho conocimiento/e xperience con ASCII o cómo C# almacena valores de cadena/caracteres internamente? – lyrisey

+0

@mikurski, no tengo mucho conocimiento sobre cómo C# almacena valores internamente. – jared

+0

La documentación de MSDN .NET para la clase String podría ser útil para usted, especialmente el método Replace(). Ver http://msdn.microsoft.com/en-us/library/system.string.aspx – lyrisey

Respuesta

29

Suponiendo que en realidad todavía quiere que los saltos de línea, lo que desea avances de línea en lugar de retorno de carro/avance de línea, se puede utilizar:

File.WriteAllText(myOutputFile, string.Join("\n", lines)); 

o si definitivamente desea un salto de línea después de la última línea también:

File.WriteAllText(myOutputFile, string.Join("\n", lines) + "\n"); 

(como alternativa, como usted dice, se podría fijar en el lado de Linux, por ejemplo, con dos2unix.)

+0

Creo que lo anterior podría ser mejor que File.WriteAllText (myOutputFile, string.Join ("\ n", líneas) + " \norte"); porque string, une separadores de lugares entre elementos, pero el delimitador debe aparecer después del final de cada elemento, de lo contrario perderás la última línea. –

+0

@KenBoorom: "pero el delimitador debe aparecer después del final de cada elemento; de lo contrario, perderá la última línea". - No perderá la última línea, simplemente no tendrá un salto de línea al final. Aunque agregaré eso como una opción. –

Cuestiones relacionadas