Feedback

C# - Zeilenumbrüche mit dem OS spezifischen Zeichen ersetzen

Veröffentlicht von am 19.03.2014
(0 Bewertungen)
Windows verwendet CRLF als Zeilenumbruchszeichen. Das entspricht der Escapesequenz \r\n. Trotzdem gibt es in den meisten Fällen keine Probleme einfach nur \n oder \r zu verwenden. Das liegt daran, das Windows auch schon ein solches Zeichen als Zeilenumbruch interpretiert.

Wie gesagt ist es Windows meistens egal, wie man Zeilenumbrüche angibt. Bei API Aufrufen (und eventuell bei anderen Dingen) ist es aber ratsam Zeilenumbrüche richtig zu kodieren.
Die statische Eigenschaft Environment.NewLine stellt das Zeichen bereit, das vom Betriebssystem als Zeilenumbruch verwendet wird. Somit ist es möglich die Zeichenfolge unabhängig vom Betriebssystem zu korrigieren.

Die Methode ist als Erweiterung für String implementiert.
Snippet in VB übersetzen
/// <summary>
/// Ersetzt Zeilenumbrüche mit dem in dem Betriebssystem verwendeten Zeilenumbruchszeichen.
/// </summary>
/// <param name="s">Die Zeichenfolge deren Zeilenumbrüche ersetzt werden sollen.</param>
/// <returns>Die Zeichenfolge <paramref name="s"/> wobei jeder Zeilenumbruch mit dem Wert von <see cref="System.Environment.NewLine"/> ersetzt wurde.</returns>
public static string ReplaceEnvironmentsNewLine(this string s)
{
    return s.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", Environment.NewLine);
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!