2017-03-28 9 views
1

データがtxt形式で格納されている場合、データが表示されます。私は写真のQOHの合計を取得したい、私は全体の合計で問題があります。ファイルtxt内の変数の合計C#コンソール

data image

public void DisTranswe() 
    { 
     Console.Clear(); 
     FileStream fs = new FileStream("TransactionHistory\\weekend\\transcationhistory.txt", FileMode.Open, FileAccess.Read); 
     StreamReader sr = new StreamReader(fs); 
     while ((str = sr.ReadLine()) != null) 
     { 
      string[] data = str.Split('#'); 
      string id = data[0]; 
      string date = data[1]; 
      string qty = data[2]; 
      string payment = data[3]; 
      string note = data[4]; 

      //output 
      Console.WriteLine("IdTransaksi"); 
      Console.WriteLine(id); 
      Console.WriteLine("DateTransaksi"); 
      Console.WriteLine(date); 
      Console.WriteLine("QOH"); 
      Console.WriteLine(qty); 
      Console.WriteLine("TotalPayment"); 
      Console.WriteLine(payment); 
      Console.WriteLine("Note"); 
      Console.WriteLine(note); 

     } 
     sr.Close(); 
     fs.Close(); 
    } 

ありがとうございます!

+0

あなたは、あなたの質問に入力されたテキストファイルを提供していただけますか? – Enigmativity

答えて

3

はこのように、あなたのQOHのためのカウンタを追加します。

public void DisTranswe() 
    { 
     Console.Clear(); 
     FileStream fs = new FileStream("TransactionHistory\\weekend\\transcationhistory.txt", FileMode.Open, FileAccess.Read); 
     StreamReader sr = new StreamReader(fs); 
     int sum=0; 
     while ((str = sr.ReadLine()) != null) 
     { 
      string[] data = str.Split('#'); 
      string id = data[0]; 
      string date = data[1]; 
      string qty = data[2]; 
      string payment = data[3]; 
      string note = data[4]; 

      sum=sum+int.Parse(qty); 

      //output 
      Console.WriteLine("IdTransaksi"); 
      Console.WriteLine(id); 
      Console.WriteLine("DateTransaksi"); 
      Console.WriteLine(date); 
      Console.WriteLine("QOH"); 
      Console.WriteLine(qty); 
      Console.WriteLine("TotalPayment"); 
      Console.WriteLine(payment); 
      Console.WriteLine("Note"); 
      Console.WriteLine(note); 


     } 

     Console.WriteLine("SUM"); 
     Console.WriteLine(sum); 
     sr.Close(); 
     fs.Close(); 
    } 
-2

これを試してみてください:

int qoh = 
    File 
     .ReadAllLines("TransactionHistory\\weekend\\transcationhistory.txt") 
     .Sum(x => int.Parse(x.Split('#')[2])); 
+2

なぜ最初のループで 'QOH'を集計できるのでしょうか? – Toshi

+0

@Toshi - 提供されたコードがスクリーンショットと一致しませんでした。それは、生産コードのようではないコードと混ぜようとすると、1ライナーがより適切であるように思えました。また、小さなファイルも扱っているので、2度目の読み込みはキャッシュから発生する可能性が高くなります。大きなペナルティはありません。 – Enigmativity

関連する問題