在组合框中显示文本文件的每一行,编辑并仅保存更改的部分

时间:2017-08-08 13:38:20

标签: c# csv text combobox edit

我有一个这样的文本文件:

0124456, 10000,2
0124434, 10001,1
0126234, 10002,2

它有大约60-70行。我想在组合框项目中添加“0124456”,“0124434”和“0126234”。我只能用richtextbox来做这件事。它一直显示每行直到“,”但是当我保存它时,它只是逐行保存“0124456”,“0124434”和“0126234”,并且摆脱了“10000,2”等。

我的保存代码如下所示:

        SaveFileDialog svf = new SaveFileDialog();
        svf.Filter = "Text files (.csv)|*.csv";
        svf.Title = "Save file...";
        if (svf.ShowDialog() == DialogResult.OK)
        {
            StreamWriter sw = new StreamWriter(svf.FileName);
            string[] lines = richTextBox1.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
            foreach (var line in lines)
            {
                sw.Write(line, Environment.NewLine);
            }
            richTextBox1.Clear();
            sw.Close();
        } 
//and my open-read code is this:
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "Text files (.csv)|*.csv";
        ofd.Title = "Open a file...";
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            StreamReader sr = new StreamReader(ofd.FileName);
            string currentLine;
            while ((currentLine = sr.ReadLine()) != null)
            {
                if (currentLine == null)
                {
                    break;
                }
                else
                {
                    string[] adat = currentLine.Split(',');
                    richTextBox1.AppendText(adat[0] + Environment.NewLine);
                }
            }
            sr.Close();
        }

所以我的目的是打开csv文件并将第一个“单词”添加到组合框项目中,编辑后我只保存编辑后的“单词”。

提前致谢!

1 个答案:

答案 0 :(得分:0)

嗨,你的问题在于打开文件,因为你只显示了富文本框中的第一部分,这就是被保存回去的内容

richTextBox1.AppendText(adat[0] + Environment.NewLine);

如果你想保存所有的行,你必须全部显示。