Parse Text Row with Empty Spaces
<p>I have a file, the text format is like this:</p>

<pre><code>  .640      .070     -.390     -.740    -1.030    -1.410    -1.780    -1.840
-1.360     -.360      .860     1.880     2.340     2.250     1.950     1.710
 1.410      .700     -.300     -.840     -.280     1.020     1.860     1.460
  .310     -.460     -.320      .350     1.020     1.650     2.430     3.070
 2.840     1.440     -.460    -1.650    -1.520     -.520      .250      .190
 -.420     -.870     -.800     -.280      .570     1.660     2.500     2.220
  .520    -1.560    -2.530    -2.030    -1.200    -1.060    -1.230     -.600
  .990     2.300     2.180      .940     -.090     -.140      .320      .470
  .330      .420      .830     1.080     1.090     1.530     2.740     3.800
 3.410     1.610     -.150     -.900    -1.120    -1.640    -2.140    -1.590
  .210     2.210     3.290     3.170     2.380     1.880     2.530     4.210
 5.280     3.820     -.040    -3.670    -4.190    -1.260     2.930     5.740
 5.980     3.920      .540    -2.890    -5.010    -4.780    -2.150     1.640
 4.670     5.540     4.230     1.950      .120     -.470     -.010      .340
 -.710    -2.940    -4.070    -1.810     3.000     6.590     6.140     2.750
 -.490    -2.460    -4.180    -5.660    -4.800     -.560     4.510     6.630
 5.140     2.860     2.230     2.510     1.670     -.440    -2.030    -2.330
</code></pre>

<p>Note that there are a lot of white characters between one value and another.</p>

<p>I tried to read each line, and then split the line according to a <code>' '</code> character. My code is something like this:</p>

<pre><code>    public List&lt;double&gt; Parse(StreamReader sr)
    {
        var dataList = new List&lt;double&gt;();

        while (sr.Peek() &gt;= 0)
        {

            string line = sr.ReadLine();
            if (lineCount &gt; 1)
            {

                string[] columns = line.Split(' ');
                for (var j = 0; j &lt; columns.Length; j++)
                {

                    dataList.Add(double.Parse(columns[j]) ));
                }
            }


        }
        return dataList ;
    }
</code></pre>

<p>The problem with the above code is that it is only able to handle the case where values are separated by a single white character. </p>

<p>Any idea ?</p>
