C#从逗号分隔文本文件读取到Windows窗体

时间:2017-03-04 22:23:38

标签: c# arrays winforms csv

我创建了一个窗口表单,它接受用户输入并以逗号分隔的方式将其写入文本文件并附加每个新行。我希望能够从该文件中读取所有数据,并在富文本框或标签中的另一个窗体上将其显示给用户。

以下代码是我必须在数据中读取到我机器上特定位置的代码。我不确定我是否首先需要将数据读入数组然后将其发送到标签或文本框。

using (StreamWriter InputFile = File.AppendText(@"C:\Users\person\Desktop\C#\New Text Document.txt"))
        {
            InputFile.WriteLine(textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + "," + textBox4.Text);
            MessageBox.Show("Data Saved!");

我知道还有很多这样的帖子,但我似乎无法得到我正在寻找的答案

2 个答案:

答案 0 :(得分:1)

不,您可以使用File.ReadLines,它会返回IEnumerable<string>

int i = 1;
foreach (string line in File.ReadLines(path)) {
    string[] columns = line.Split(',');
    for (int c = 0; c < columns.Length; c++) {
        ((TextBox)Controls["textBox" + i++]).Text = columns[c];
    }
}

我假设第一行有textBox1textBox4的文本框名称,第二行有textBox5textBox8,依此类推。但是使用网格可能会更好。

还要考虑使用命名空间TextFieldParser中的Microsoft.VisualBasic.FileIO。它为您完成所有CSV处理。您必须添加对Microsoft.VisualBasic.dll

的引用

注意:Microsoft.VisualBasic.dll中的内容与其他任何内容一样只是一个.NET库,在C#和VB中一样。

答案 1 :(得分:0)

是的,您必须阅读数组中的所有行并使用如下代码

var lines =File.ReadAllLines(@"C:\Users\person\Desktop\C#\New Text Document.txt");
            foreach (var line in lines)
            {
                var col = line.Split(',');
                textBox1.Text = col[0]; 
                   textBox2.Text = col[1];
                textBox3.Text = col[2];
                textBox4.Text = col[3]; 
            }