2017-04-09 15 views
0

私はC#が行くまで完全な初心者です。ソースデータにはcsvファイルを使用するプログラムを作成しようとしています。C#CSVファイルから特定のセルを書き出す

using (var sr = new StreamReader(fileInput)) 

while ((line = sr.ReadLine()) != null) 
     { 
     if (line.Contains(mK)) // <---Variable inputted by the user 
     { 
      Console.WriteLine(""+line); 
      myValue = File.ReadAllLines(fileInput).Skip(1).First().Split(',')[0]; 
     } 
     LineNumber++; 
    } 

私が働いているCSVファイルには、多分情報の種類と8列ごとがあります。

は、ここに私のコードの一部です。 1行は1つのもののリストのようなものです。

しかし私はこれで3日間座っていましたが、ファイルを特定の行と列からどのように印刷するかわかりません。

ここで私が持っているものは、それぞれの行を通り、行のどこかで入力が見つかると、行全体を書き出します。

その後、最初の(ヘッダー)行をスキップし、最後に番号として入力した特定の列を書き込むvar myValueを作成しようとしました。しかし、私は何とか線を変更する方法を見つける必要があります。なぜなら、常に最初のデータ行だけを取るように見えるからです。私はint LineNumber ++で行番号を正しく読んでいるかどうかをチェックして、私に必要な番号を返す。その番号をコードに入れて、必要な特定のセルを出力するにはどうすればいいですか?

+1

あなたの質問のタイトルには解決しないでください。 –

答えて

1

ファイル全体をもう一度読み直して、1行をスキップするのはなぜですか?変数lineには既に関心のある行があります。

ちょうどそれを分割し、必要な列(私は仮定最初の1)を取得:

using(var sr = new StreamReader(fileInput)) 
while ((line = sr.ReadLine()) != null) { 
    if (line.Contains(mK)) // <---Variable inputted by the user 
    { 
     var value = line.Split(",")[0]; 
     Console.WriteLine(value); 
    } 
} 
0

フェデリコは、すでに質問に答えたが、ここにあなたのLineNumber変数に関しては、あなたの他の質問のための何かがあります。

using (var sr = new StreamReader(fileInput)) 

while ((line = sr.ReadLine()) != null) 
     { 
     LineNumber++; 
     if(LineNumber < 1)//if reading header record 
     { 
     //skip 
     } 
     else 
     { 
     //not reading header line 
     //check if the line meets your criteria 
      if(line == "my anticipated value") 
      { 
       line.Split(',')[0];//pull index 0 from the array on strings created by split 
      } 
     } 
    } 
関連する問題