none
存檔讀檔有問題 RRS feed

  • 問題

  • 我想儲存和讀取RichTextBox的資料 
    private void 存檔ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if(saveFileDialog1.ShowDialog()== DialogResult.OK)
                {
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
      richTextBox2.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
            }
            private void 讀取ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
    richTextBox2.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
            }
    但是當我存檔完再次讀取時,2個richTextBox都只會顯示先前richTextBox2的資料,出現一樣的資料
    請問我該如何解決?
    2011年12月31日 上午 06:47

解答

  • 髂請問我如果想一次讀取2邊的資料而不會覆蓋呢?

    請問大大有解決方案嗎?


    個人認為最好再多拉兩個ToolStripMenuItem

     

    private void 存檔R1ToolStripMenuItem_Click(object sender, EventArgs e)
             {
     
                if(saveFileDialog1.ShowDialog()== DialogResult.OK)
                {
     
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
                }
               
            }
     
    
            private void 讀取R1ToolStripMenuItem_Click(object sender, EventArgs e)
            {
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
     
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
     
                }
                  
            }
    
    private void 存檔R2ToolStripMenuItem_Click(object sender, EventArgs e)
             {
     
              if(saveFileDialog2.ShowDialog()== DialogResult.OK)
                {
     
       richTextBox2.SaveFile(saveFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
    
            }
     
    
            private void 讀取R2ToolStripMenuItem_Click(object sender, EventArgs e)
             {
     
               if (openFileDialog2.ShowDialog() == DialogResult.OK)
                {
     
                      richTextBox2.LoadFile(openFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
      
            }
    
    

     

    如果真的想一次讀取2邊資料不會覆蓋的話,也是可以硬做(只是很醜)

     

    private void 存檔ToolStripMenuItem_Click(object sender, EventArgs e)
            {
     
                if(saveFileDialog1.ShowDialog()== DialogResult.OK)
                {
     
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
                }
                if(saveFileDialog2.ShowDialog()== DialogResult.OK)
                {
     
       richTextBox2.SaveFile(saveFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
    
     
            }
     
    
            private void 讀取ToolStripMenuItem_Click(object sender, EventArgs e)
     
            {
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
     
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
    
                }
                if (openFileDialog2.ShowDialog() == DialogResult.OK)
                {
     
    
    richTextBox2.LoadFile(openFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
      
            }
    

     

     




    2012年1月1日 上午 03:07

所有回覆

  • 我想儲存和讀取RichTextBox的資料 
    private void 存檔ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if(saveFileDialog1.ShowDialog()== DialogResult.OK)
                {
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
      richTextBox2.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
            }
            private void 讀取ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
    richTextBox2.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
            }
    但是當我存檔完再次讀取時,2個richTextBox都只會顯示先前richTextBox2的資料,出現一樣的資料
    請問我該如何解決?
    2011年12月31日 上午 06:46
  • 因為在存檔時候

    if(saveFileDialog1.ShowDialog()== DialogResult.OK)

    {
      richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
      richTextBox2.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
    }
    這樣寫法richTextBox2會蓋掉原先richTextBox1所儲存的檔案
    建議richTextBox1和richTextBox2分成兩檔案存檔
    也分開讀檔會比較好處理

    2011年12月31日 上午 07:46
  • 因為以下兩行程式碼存檔時使用相同的檔案名稱, 所以最後的檔案內容會是richTextBox2的內容

    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);

    richTextBox2.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
    同樣地, 以下兩行程式碼讀的也是同一個檔案:
    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     richTextBox2.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
    所以您只要在呼叫SaveFile和LoadFile方法時傳入不同的檔名當做第一個參數就解決了
    2011年12月31日 上午 08:17
  • 髂請問我如果想一次讀取2邊的資料而不會覆蓋呢?

    請問大大有解決方案嗎?

    2011年12月31日 下午 04:06
  • 想辦法存到兩個不同的檔案

    一個存saveFileDialog1.FileName,另一個把saveFileDialog1.FileName的檔名加上另一個字元讓它成為不同的檔名

    2011年12月31日 下午 04:18
  • 髂請問我如果想一次讀取2邊的資料而不會覆蓋呢?

    請問大大有解決方案嗎?


    個人認為最好再多拉兩個ToolStripMenuItem

     

    private void 存檔R1ToolStripMenuItem_Click(object sender, EventArgs e)
             {
     
                if(saveFileDialog1.ShowDialog()== DialogResult.OK)
                {
     
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
                }
               
            }
     
    
            private void 讀取R1ToolStripMenuItem_Click(object sender, EventArgs e)
            {
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
     
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
     
                }
                  
            }
    
    private void 存檔R2ToolStripMenuItem_Click(object sender, EventArgs e)
             {
     
              if(saveFileDialog2.ShowDialog()== DialogResult.OK)
                {
     
       richTextBox2.SaveFile(saveFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
    
            }
     
    
            private void 讀取R2ToolStripMenuItem_Click(object sender, EventArgs e)
             {
     
               if (openFileDialog2.ShowDialog() == DialogResult.OK)
                {
     
                      richTextBox2.LoadFile(openFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
      
            }
    
    

     

    如果真的想一次讀取2邊資料不會覆蓋的話,也是可以硬做(只是很醜)

     

    private void 存檔ToolStripMenuItem_Click(object sender, EventArgs e)
            {
     
                if(saveFileDialog1.ShowDialog()== DialogResult.OK)
                {
     
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
                }
                if(saveFileDialog2.ShowDialog()== DialogResult.OK)
                {
     
       richTextBox2.SaveFile(saveFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
    
     
            }
     
    
            private void 讀取ToolStripMenuItem_Click(object sender, EventArgs e)
     
            {
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
     
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
     
    
                }
                if (openFileDialog2.ShowDialog() == DialogResult.OK)
                {
     
    
    richTextBox2.LoadFile(openFileDialog2.FileName, RichTextBoxStreamType.PlainText);
     
                }
      
            }
    

     

     




    2012年1月1日 上午 03:07