2017-04-10 3 views
0

私はちょっとしたコードを少し苦労しています。私は数字列を含む1列のCSVファイルを持っています。そのファイルを問題なくインポートして表示できます。CSVの内容を文字列に挿入する

私の目標は、各テーブルの数値を取り出して別の文字列に入れ、その文字列を関数で実行し、結果を2列目のデータグリッドに戻します。私は以下のコードを使ってこれを行うべきである方法がありますか? foreachステートメントは、これが行われるべきだと私は信じています。

編集:私はコードを微調整しましたが、それは今のところ私が望むように機能しますが、最初のもの以外のどの列にも結果を挿入できません。結果をターゲットにして2番目の列に入るようにする方法はありますか?

  using (var fs = File.OpenRead(Dialog.FileName)) 
      using (var reader = new StreamReader(fs)) 
      { 

       List<string> lista = new List<string>(); 
       List<string> listb = new List<string>(); 

       while (!reader.EndOfStream) 
       { 
        var line = reader.ReadLine(); 
        var values = line.Split(','); 
        lista.Add(values[0]); 
        dt1.Rows.Add(values[0]); 
       } 
       foreach (var item in lista) 
       { 
        string temp; 
        GetLuhnCheckDigit(item); 
        listb.Add(last.ToString()); 
        temp = item + last.ToString(); 

        dt1.Rows.Add(temp); //This only adds to the first column 
       } 
       dataGridView1.DataSource = dt1; 

答えて

1

GetLuhnCheckDigit方法が何をするかを知ることがなければ、あなたが含まれている2番目の列をしたい値かを決定することはできません。投稿されたコードを見ると、データテーブルのカラム数など多くの欠けているものがあります。Dialog変数定義はどこですか? lastとは何ですか?

DataTabledt1に少なくとも2つの列があると仮定して、最初の列に項目を追加してから2番目の列を設定する項目をループする理由がわかりません。同時に両方の列を追加する方が簡単になるようです。

あなたはすべてこの中には、以下のようなファイルを読み込む行うことができます

try { 
    using (var fs = File.OpenRead(Dialog.FileName)) { 
    using (var reader = new StreamReader(fs)) { 

     List<string> lista = new List<string>(); 
     List<string> listb = new List<string>(); 
     string temp; 

     while (!reader.EndOfStream) { 
     var line = reader.ReadLine(); 
     var values = line.Split(','); 
     lista.Add(values[0]); 
     GetLuhnCheckDigit(values[0]); // <-- What is this method doing??? 
     listb.Add(last.ToString()); 
     temp = values[0] + last.ToString(); 
     dt1.Rows.Add(values[0], temp); // <-- this adds both columns 
     } 
     dataGridView1.DataSource = dt1; 
    } 
    } 
} 
catch (Exception e) { 
    MessageBox.Show("Error: " + e.Message); 
} 

私はGetLuhnCheckDigit方法をやって何ができるかのように無知だとして、私は何かが欠けていた場合、私に教えてください。

+0

これはトリックでした。 GetLuhnCheckDigit関数は単に文字列を要求し、挿入された文字列に基づいて数値を生成します。詳細はこちら、https://en.wikipedia.org/wiki/Luhn_algorithm。 – SomethingStrange

関連する問題