簡體   English   中英

將richTextBox內容保存到c#上的.txt文件中

[英]Save richTextBox content to .txt file on c#

當你編寫這段代碼時:

    string path = @"c:\temp\MyTest.txt";
    // This text is added only once to the file.
    if (!File.Exists(path))
    {
        // Create a file to write to.
        string[] createText = { "Hello", "And", "Welcome" };
        File.WriteAllLines(path, createText);
    }

resualt

現在我想將每行richTextBox內容保存到.txt文件的新行,如結果圖像。 我寫下我的代碼如下:

private void button1_Click(object sender, EventArgs e)
{
     richTextBox1.AppendText(textBox1.Text +"\n");
     System.IO.File.WriteAllText(@"C:\Users\Mohammad_Taghi\Desktop\ab\a.txt", richTextBox1.Text + Environment.NewLine);            
}

但是,結果是 resulat2

由於某種原因,RichTextBox控件包含換行符的“\\ n”而不是“\\ r \\ n”。

嘗試這個:

System.IO.File.WriteAllText(
    @"C:\Users\Mohammad_Taghi\Desktop\ab\a.txt",
    richTextBox1.Text.Replace("\n", Environment.NewLine));

更好的方法是使用richTextBox1.Lines ,它是一個包含所有行的字符串數組:

System.IO.File.WriteAllLines(
    @"C:\Users\Mohammad_Taghi\Desktop\ab\a.txt",
    richTextBox1.Lines);

為了完整起見,這是另一種方式:

richTextBox1.SaveFile(@"C:\Users\Mohammad_Taghi\Desktop\ab\a.txt",
    RichTextBoxStreamType.PlainText); //This will remove any formatting

問題是文本輸入和文本文件所需輸入之間的轉換。 可能性如下:

private void button1_Click(object sender, EventArgs e)
{
     richTextBox1.AppendText(textBox1.Text);
     System.IO.File.WriteAllText(@"C:\Users\Mohammad_Taghi\Desktop\ab\a.txt", richTextBox1.Text.Replace("\n", Environment.NewLine));            
}

問題不僅在於文本框特定,而且還可能是特定於操作系統的(例如,如果您讀取在Linux系統上創建的文件,....)。 有些系統只使用\\ n作為新行\\ r \\ n \\ n \\ n \\ n \\ n \\ n \\ n C#。 通常,您必須手動使用正確的變體。

但是c#在Environment.NewLine的形式有一個很好的解決方法,它包含當前系統的正確變體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM