debug看看有什么错误的,看看在哪一行的,
而且读了两遍文件,感觉有点浪费的,一次就可以搞定的

解决方案 »

  1.   

    额。。用空格符分,只有5部分吧,哪里来的六项?你的list里面只有5项,list[5]当然超出索引啦
      

  2.   


         KZPs[i].x = Convert.ToDouble(list[0]);     //实现赋值
                    KZPs[i].y = Convert.ToDouble(list[1]);
                    KZPs[i].z = Convert.ToDouble(list[2]);
                    YXPs[i].x = Convert.ToDouble(list[3]) / 1000;   //注意要将单位mm化成m
                    YXPs[i].y = Convert.ToDouble(list[4]) / 1000;
    不是12345
      

  3.   

    但是如果文件是:
      X(m)      Y(m)     z(m)     x(mm)   y(mm) 
    36589.41   25273.32  2195.17   -86.15  -68.99     
    37631.08   31324.51  728.69    -53.45  82.21 
    39100.97   24934.08  2386.50   -14.78  -76.63 
    40426.54   30319.81  757.31    10.46   64.43 
    关键这个list[i]是一行 还是一列呢 ?要求是一行的
    不知是不是 string splitStr = @"\s{1,}";
    这句有问题。我按上面提示改了,可是格式错误。
      

  4.   

    ..list[i] 不是一行也不是一列
    list本身就在for循环里面了,也就是一行一行来循环的。
    list[i]表示只是一行中以空格符分开的数组中的一个字符串而已splitStr 是正则表达式的字符串,看看你需要做什么样的正则表达式就去网上搜搜就有了
      

  5.   

    根本就不明白你要实现什么来着
    也不用把字符去除吧
    text = sr.ReadLine(); 
    string [] str=text.spilt(' ');
    str[1],str[2],str[3],str[4]不就是你想要的吗
      

  6.   

    不好意思让大家久等了,这两天断网了。
    我只是想把 
    X(m)      Y(m)    z(m)    x(mm)  y(mm) 
    36589.41  25273.32  2195.17  -86.15  -68.99    
    37631.08  31324.51  728.69    -53.45  82.21 
    39100.97  24934.08  2386.50  -14.78  -76.63 
    40426.54  30319.81  757.31    10.46  64.43 
    这里面的数据读到X[4],Y[4],Z[4],x[4],y[4]这五个数组里去。然后用数组参与以后的计算。
    还是麻烦懂得人给改改程序。