0

ファイルから aDoubleに aを追加すると問題が発生します。今、私は以前にまったく同じファイルを使用してこれを行い、. で動作する私のコードは次のとおりです。List<double>CSVDouble Arrayarray

double[] ch1Array = new double[arraySize];

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{               
   string fileName = Path.Combine(filePath, openFileDialog1.FileName);                
   var reader = new StreamReader(File.OpenRead(fileName));

   while(!reader.EndOfStream)
   {
      var line = reader.ReadLine(); //Get through the column titles
      var values = line.Split(',');
      if (dataSize > 0)
      {
         try
         {
             ch1Array[dataSize] = Convert.ToDouble(values[1]);
             //etc...

このコードは完全に機能し、私が変更した唯一のことは、Arrayもう を使用しておらず、代わりに を使用していることList<double>です。

            List<double> ch1Array = new List<double>();

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //Create stream reader and open file
                string fileName = Path.Combine(mainFilePath, openFileDialog1.FileName);
                var reader = new StreamReader(File.OpenRead(fileName));

                int counter = 0;

                //Read document until end of stream
                while (!reader.EndOfStream)
                {
                    var line = reader.ReadLine(); 
                    var values = line.Split(',');

                    try
                    {   
                        ch1Array.Add(Convert.ToDouble(values[1]));
                        //etc..

今、私はList間違ったものを使用していると仮定しています(使用したのは初めてListsです)。プログラムがそのセクションに到達すると (コンパイルして正常に実行されます)、エラーがあり、入力文字列が正しい形式ではないことがわかります。しかし、values[1]他のコンテキストで変数を使用できるので、Double何をしているのかわからないため、エラーがスローされます。誰が私が間違っているのか教えてもらえますか?

編集:スローされる例外は次のとおりです。 ここに画像の説明を入力

4

2 に答える 2

1

あなたは、メッセージ ボックスに「3276」という値が表示されていると言いました。Convert.ToDouble("\"3276\"")これは、取得している例外をスローすることを試みていることを意味します。

次の行を変更します。

Convert.ToDouble(values[1])

に:

Convert.ToDouble(values[1].Replace("\"",""));
于 2013-05-21T19:05:52.113 に答える