0

c#を使ってphpのテキストファイルを読みたいです。ファイルは次のようになります。

2.20:2.20:2.20:2.20:2.20:
2012-07-12:2012-07-11:2012-07-10:2012-07-09:2012-07-08:

リストボックスにすべての行を取得したいと思います。実際には 6 行ありますが、最初にこの 2 行を読む必要がありました。私のコード:

void web_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
     try
     {
         int i;
         string price_line = "";
         string date_line = "";
         List<decimal> prices = new List<decimal>();
         List<string> dates = new List<string>();

         using (var reader = new StreamReader(e.Result))
         {
             price_line = reader.ReadLine();
             date_line = reader.ReadLine();
             string[] bit_1 = price_line.Split(':');
             string[] bit_2 = date_line.Split(':');
             for (i = 0; i < 2; i++)
             {
                 prices.Add(decimal.Parse(bit_1[i]));
                 dates.Add(bit_2[i]);
             }
             listBox1.ItemsSource = prices;
             listBox2.ItemsSource = dates;
         }
     }
     catch
     {
          MessageBox.Show("Can't read!");
     }           
}

これで「NullException」が発生します。これを修正する方法は?

4

1 に答える 1

1

編集:

内容:

using (StreamReader reader = new StreamReader(e.Result)) 
{
     List<string> lines = new List<string>();
     while (!reader.EndOfStream) 
         lines.Add(reader.ReadLine());

     string prices = lines.First().Split(':');

     List<decimal> listPrices = new List<decimal>();
     List<string> listDates = lines.Last().Split(':').ToList();

     foreach(string s in prices)
        listPrices.Add(double.Parse(s));

     listBox1.ItemsSource = listPrices;
     listBox2.ItemsSource = listDates;
}

e.ResultlistBox1およびlistBox2がnullでないかどうかを確認する必要があります。

于 2012-07-20T17:56:45.147 に答える