2016-09-29 2 views
-4

파일에서 데이터를 가져 와서 배열에 저장하려고하면 목록 상자에 데이터가 표시되고 그 다음에 합계가 텍스트 상자에 표시됩니다. 여기 내 코드가 있는데 작동하지 않습니다. 내가 뭘 잘못하고 있는지 모르겠다.파일을 읽고 배열에 저장하고 텍스트 상자에 합계를 표시하십시오.

private void findClick(object sender, EventArgs e) 
{ 
    int sum; 
    using (OpenFileDialog ofd = new OpenFileDialog()) 
    { 
     if (ofd.ShowDialog() == DialogResult.OK) 
     { 
      using (StreamReader InputFile = new StreamReader(ofd.FileName)) 
      { 
       while (InputFile.EndOfStream == false) 
       { 
        int[] array = new int[listBox.Items.Count]; 
        for (int i = 0; i < listBox.Items.Count; i++) 
        { 
         // array[i] = Convert.ToInt32(listBox.Items[i].ToString()); 
         array[i] = int.Parse(listBox.Items[i].ToString()); 
         sum = array.Sum(); 
         TotalAmtlabel.Text = sum.ToString("N0"); 

         TotalNumberslabel.Text = listBox.Items.Count.ToString(); 
         TotalAmountlabel.Text = string.Format("{0:N0}", sum); 
        } 
       } 
      } 
     } 
    } 
} 
+1

는 "작동하지 않습니다"보다 더 구체적으로하시기 바랍니다. 사람들이 자신의 코드를 실행하여 자신을 찾아 낼 것으로 기대하지 마십시오. 정확히 무엇이 잘못되었는지, 그리고 이미 그 원인을 찾으려고 시도했는지 설명하십시오. – ChrisF

+0

파일을 읽을 계획이 있으십니까? – Xaqron

+0

코드를 실행하면 목록 상자와 텍스트 상자에 데이터가 표시되지 않습니다. @ ChrisF @Xaqron – Becca

답변

2
listBox.Items.AddRange(File.ReadAllLines(ofd.FileName)); 
+0

파일을 목록에로드하는 훨씬 더 우아한 해결책이지만 전체 질문에는 대답하지 않습니다. – Abion47

1

이 시도하고 수정할 필요에 따라 :

string[] amounts = File.ReadAllLines(ofd.FileName); 
int currentSum = 0; 
int totalSum = 0; 
ListItem[] amountItems = new ListItem[amounts.Length]; 
for (int i = 0; i < amounts.Length; i++) 
{ 
    if (int.TryParse(amounts[i], out currentSum)) 
    { 
     totalSum += currentSum; 
    } 
    amountItems[i] = amounts[i]; 
} 
listBox.Items.AddRange(amountItems); 
TotalAmountlabel.Text = string.Format("{0}", totalSum); 

또한 데이터 소스 목록을 결합 할 수 있습니다. 보안주의 사항을 이해하기 위해 한 번이어야 MSDN 참조 아래로 통과하십시오 :

  1. ListItem
  2. ListBox
관련 문제