Fractionner le texte avec des "\r\n'

Je suivais ce l'article

Et je suis venu avec ce code:

string FileName = "C:\\test.txt";

using (StreamReader sr = new StreamReader(FileName, Encoding.Default))
{
    string[] stringSeparators = new string[] { "\r\n" };
    string text = sr.ReadToEnd();
    string[] lines = text.Split(stringSeparators, StringSplitOptions.None);
    foreach (string s in lines)
    {
        Console.WriteLine(s);
    }
}

Voici un exemple de texte:

somet interesting text\n
some text that should be in the same line\r\n
some text should be in another line

Voici le résultat:

somet interesting text\r\n
some text that should be in the same line\r\n
some text should be in another line\r\n

Mais ce que je veux, c'est ceci:

somet interesting textsome text that should be in the same line\r\n
some text should be in another line\r\n

Je pense que je devrais obtenir ce résultat, mais de toute façon je suis en manque de quelque chose...

  • Pourquoi n'utilisez-vous pas File.ReadAllLines ou File.ReadLines?
  • Console.WriteLine() ajoutera le retour à la ligne automatique après chaque chaîne dans votre tableau. Vous souhaitez fusionner l'ensemble de lignes AVANT la boucle, ou comme une réponse proposé, remplacer les \n avant de vous Split le texte.
  • Je veux avoir la ligne qui précisément se termine avec \r\n pas \n ou \r.
  • Le problème n'est pas que vous avez \r\n et \n à la fin, mais que vous êtes en oubliant que les lignes qui contiennent déjà des sauts de lignes. Donc, même si vous les enlevez, vous avez trois lignes dans le fichier.
  • Êtes-vous sûr que la première ligne de la sortie se termine avec \r\n? Ajoutez cette ligne et de voir si c'est ce que vous attendez: Console.WriteLine("lines.Length={0}", lines.Length);
InformationsquelleAutor skmasq | 2014-03-04