So I've got some lines in my richtextbox, but when i click btnSaveLog, it saves, but everything is on one line...
I have to use a richtextbox to show all info. I've seen it does show the lines with Wordpad, but i'm saving it as a *.log file, so i'm using notepad.
Any solutions for this problem?

Code:
TextWriter stwLog = new StreamWriter("data.log");
stwLog.WriteLine(richTextBox1.Text);
stwLog.Close();

Edited 6 Years Ago by Isaaac: n/a

StreamWriter stwLog = new StreamWriter("data.log");
stwLog.WriteLine(richTextBox1.Text);
// Depending on what your doing just using write might be easier so try it out.
stwLog.Close();

Replace \n with \r\n (CRLF).

string str = richTextBox1.Text.Replace("\n", "\r\n");
 ....            
 tw.WriteLine(str);
 tw.Close();
Comments
That's the answer (Y)

Try this: File.WriteAllLines("data.log", richTextBox1.Lines);

Works perfectly!
But how do i append that text? i don't want to delete previous log..

Try this: File.WriteAllLines("data.log", richTextBox1.Lines);

Works perfectly!
But how do i append that text? i don't want to delete previous log..

Use the File.AppendAllLines method.

Haven't got such a method... i'm using System.IO;
any other libraries needed?

Edited 6 Years Ago by Isaaac: n/a

Apparently, the File.AppendAllLines method is new with .NET 4. Fortunately, the "long way" isn't all that complicated. This method uses an overload of the StreamWriter constructor that contains a boolean parameter to indicate whether or not to append to a file rather than simply overwriting it.

private void button1_Click(object sender, EventArgs e)
{
    string path = @"C:\Temp\writerdemo.txt";

    using (StreamWriter writer = new StreamWriter(path, true))
    {
        foreach (string line in richTextBox1.Lines)
            writer.WriteLine(line);
    }
}
This question has already been answered. Start a new discussion instead.