0

データをdatagridviewに入力して保存ボタンを押した後、実行時に2つのボタン(1つは毎回新しいファイルを保存するため、もう1つは既存のファイルをロードするため)でdatagridviewを使用していますが、ロードを押すと新しいファイルが作成されます(これは問題ありません)ボタンをクリックしてファイルを選択し、編集して保存ボタンを押すと、新しいファイルが再び作成されます。しかし、そのファイルを上書きしたいです(以前に保存された古いファイルに新しく追加されたデータで)。私のコードを修正してください。

namespace DGVIEW_FILING
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {

                string fn = string.Format(@" {0}.txt", DateTime.Now.Ticks);
                FileStream FS = new FileStream(fn, FileMode.Create);




                // write the text from streamwriter.....
                // write the text from streamwriter.....
                TextWriter view = new StreamWriter(FS);



                int rc = dataGridView1.Rows.Count;

                for (int i = 0; i < rc - 1; i++)
                {
                    view.WriteLine(dataGridView1.Rows[i].Cells[0].Value.ToString() + "\t" +
                    dataGridView1.Rows[i].Cells[1].Value.ToString() + "\t" +
                  dataGridView1.Rows[i].Cells[2].Value.ToString());
                }



                view.Close();   // for close the fs file which created earlier......

            MessageBox.Show("DATA SAVED!! ");
        }

        private void button2_Click(object sender, EventArgs e)
        {

            DialogResult obj = new DialogResult();
            //obj = openFileDialog1.ShowDialog();
            obj= DialogResult.OK;

            // Read the text from text file....
            if ( openFileDialog1.ShowDialog() == obj ) 
            {




                TextReader done = new StreamReader(openFileDialog1.FileName );
               // FileStream fileStream = new FileStream(@" {0}.txt", FileMode.Open, FileAccess.Write);
                int row = 0;
                string line;
                while ((line = done.ReadLine()) != null)
                {
                    string[] columns = line.Split('\t');
                    dataGridView1.Rows.Add();
                    for (int i = 0; i < columns.Length; i++)
                    {
                        dataGridView1[i, row].Value = columns[i];
                    }
                    row++;


                }

                MessageBox.Show(done.ReadToEnd()); 

                done.Close();
            }




            }


        }
    }
4

1 に答える 1