在保留新线的同时,将文本框文本写入文件



我尝试使用:streamwriter.writeline()streamwriter.write()file.writealText()

但是所有这些方法都将文本框文本写入文件,而无需保持新线和此类字符。我该怎么做?

编辑:

    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        SaveFileDialog s = new SaveFileDialog();
        s.FileName = "new_doc.txt";
        s.Filter = "Text File | *.txt";
        if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            File.WriteAllText(s.FileName, richTextBox1.Text);
        }
    }

我正在使用Multiline RichTextbox来执行此操作。

在Tzortzik的答案上展开,如果您使用StreamWriter并简单地访问RichTextbox的Lines属性,它将为您完成工作:

    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        SaveFileDialog s = new SaveFileDialog();
        s.FileName = "new_doc.txt";
        s.Filter = "Text File | *.txt";
        if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            using (StreamWriter sw = new StreamWriter(s.FileName))
            {
                foreach (string line in richTextBox1.Lines)
                {
                    sw.WriteLine(line);
                }
            }
        }
    }

也许这会有所帮助。来自StreamWriter类文档。

string[] str = String.Split(...);
// Write each directory name to a file. 
using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
{
    foreach (DirectoryInfo dir in cDirs)
    {
        sw.WriteLine(dir.Name);
    }
}

这个想法是从文本框中获取文本,然后在n char之后将其拆分。结果将是一个字符串,每个包含一行的元素。

以后的编辑:

问题是剩下的返回马车。如果您使用调试器查看代码,您会发现您的字符串在新行中仅具有n而不是rn。如果将此代码行放入功能中,则将获得所需的结果:

string tbval = richTextBox1.Text;
tbval = tbval.Replace("n", "rn");

应该还有其他解决方案,看起来比这更好,但是这个问题的结果很快。

最新更新