以原始文本格式存储数据

时间:2016-05-16 23:52:41

标签: c# forms visual-studio

我是编码的新手,我遇到了以下问题。我得到了一个存储在文本文件中的数据集,并且在buttonclick(Forms)上将每列数据写入三个文本框。这很好用:

1. IMG "left my dataset, right: the output in forms"

但是当我编辑文本框中的数据并将其存储在按钮上并将其存储到文本文件中时,我遇到了问题,同时保留了与原始TXT文件完全相同的格式。

这是我目前使用我的代码得到的:

2.IMG "Wrong format"

我的问题是,如何将我的数组的前三个元素放入一行,接下来的三个元素放入第二行,依此类推,以获得原始格式?我尝试了各种拆分方法,但无法让它运行。

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    this.textBox1.Text = null;
    this.textBox2.Text = null;
    this.textBox3.Text = null;

    string[] input = System.IO.File.ReadAllLines(@"C:\Users\Dan\Desktop\NEW.txt");

    // sets new string
    string words = "";

    for (int k = 0; k < input.Length; k++)
    {
        words = words + input[k] + " ";
    }

    // converts string type "words" to string array "lines" 
    string[] lines = words.Split(' ');

    for (int i = 0; i < lines.Length - 1; i = i + 3)
    {
        textBox1.Text += lines[i] + "\r\n";
        textBox2.Text += lines[i + 1] + "\r\n";
        textBox3.Text += lines[i + 2] + "\r\n";
    }
}

private void button2_Click(object sender, EventArgs e)
{
    string[] output = (this.textBox1.Text  + this.textBox2.Text + this.textBox3.Text).Split('\r');

    string hello = "";

    for (int i = 0; i < 3; i++)
    {
        hello += output[i] + output[i + 3] + output[i + 6];
    }

    File.WriteAllText(@"C:\Users\Dan\Desktop\Output.txt",hello);
}

1 个答案:

答案 0 :(得分:1)

首先,您需要像这样进行拆分以正确处理回车:

string[] output = (this.textBox1.Text + this.textBox2.Text + this.textBox3.Text).Split(new [] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

然后您可以重建原始文件格式:

hello += string.Format("{0} {1} {2}{3}", output[i], output[i + 3], output[i + 6], Environment.NewLine);