2012-06-11 24 views
11

C# kullanıyorum ve bir ASCII dosyasına birkaç satır çıkarmaya çalışıyorum.CRLF olmadan C# içinde WriteAllLines nasıl yazılır

ASCII text 

CRLF bazı sorunlara yol açıyor ve orada umuyordum:

ASCII text, with CRLF line terminators 

Sadece olmak için bu dosyayı gerekir: yaşadığım sorun benim Linux ana kadar bu dosyaları görme olmasıdır sadece istediğim şekilde biçimlendirilmiş dosyayı oluşturmak için C# bir yoluydu.

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

CRLF satır sonlandırıcı olmadan dosya oluşturmak için kolay bir yol var mı:

Temelde bu kodu kullanıyorum? Bunu muhtemelen Linux tarafında halledebilirim, ancak dosyayı en başından doğru biçimde oluşturmayı tercih ederim.

+0

meraktan: Eğer çok bilgi/e var mı ASCII ile xperience veya C# dahili/karakter değerlerini dahili olarak nasıl depolar? – lyrisey

+0

@mikurski, C# değerlerinin dahili olarak nasıl değerlendiğiyle ilgili fazla bilgiye sahip değilim. – jared

+0

String sınıfı için MSDN .NET belgelerinde, özellikle de Replace() yöntemi yararlı olabilir. Bkz. Http://msdn.microsoft.com/en-us/library/system.string.aspx – lyrisey

cevap

29

aslında linebreaks istiyorum, sadece çizgi yerine satırbaşı/satır besleme akışlarını istiyorum hala varsayarsak şunu kullanabilirsiniz:

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

yoksa kesinlikle çok son satırdan sonra bir satır sonu istiyorsanız:

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

(dediğin gibi Alternatif olarak, dos2unix ile örneğin, Linux tarafında düzeltmek başladı.)

+0

Yukarıdakilerin daha iyi olabileceğine inanıyorum File.WriteAllText (myOutputFile, string.Join ("\ n", lines) + " \ n "); çünkü dize, Öğeler arasındaki öğeleri ayırın, ancak her öğenin sonundan sonra sınırlayıcı oluşmalıdır, aksi halde son satırı kaybedersiniz. –

+0

@KenBoorom: "Fakat her elemanın sonundan sonra sınırlayıcı oluşmalıdır, aksi halde son satırı kaybedersiniz." - Son çizgiyi kaybetmeyeceksin, sonunda bir satır sonu olmayacak. Bunu bir seçenek olarak ekleyeceğim. –

İlgili konular