2016-05-16 12 views
-1

私はコーディングが初めてで、次の問題に悩まされています。私は、テキストファイルに格納されたデータセットを取得し、buttonclick(Forms)では、データの各列が3つのテキストボックスに書き込まれます。データを元のテキスト形式で保存する

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

をしかし、私はテキストボックス内のデータを編集し、オリジナルのTXTファイルとまったく同じ形式を維持しながら、テキストファイルにbuttonclickに保存したとき、私は問題を得た:これが正常に動作します。

これは私が私のコードで現在得るものです:

2.IMG "Wrong format"

私の質問は、私は2番目の行に1行に私の配列の最初の3つの要素と次の3つの要素を得るのですか、ですオリジナルの形式を得るためにはどうですか?私はさまざまな分割方法を試しましたが、実行することはできません。

ここ

が私のコードです:

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); 
} 
+0

これは今どのように問題が起こっていますか?明確にするために別のイメージを追加できますか? – PhilDulac

+0

こんにちは私は、フォーマットが最初のものと異なるので、2番目のイメージが十分にはっきりしていると思いました。私はちょうど最初の画像(左)から "元の"形式のテキストファイルに書きたい – Dan

+0

[デバッグしようとしました](http://ericlippert.com/2014/03/05/how-to-debug-小規模プログラム/)?私に起こる最初の問題はファイル行を '' \ r \ n "'で結合することですが、あなたが書くときは ''\ r' 'だけを分割します。 '' \ n ''はどうですか? –

答えて

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); 
関連する問題