pos.Speed = Int32.Parse(ss[11].Substring(ss[11].IndexOf('V')));

解决方案 »

  1.   

    ss[11] 里面不存在('V'),所以Substring函数就会报错.
      

  2.   

    if(ss.Contains('V'))
    pos.Speed = Int32.Parse(ss[11].Substring(ss[11].IndexOf('V')));
      

  3.   

    ss[11].IndexOf('V')先判断这个是否>-1,再执行你这句~
      

  4.   

    你自己动动脑子就明白了.你要把字符串的一部分转为int,现在这部分提取不出来.
      

  5.   


    if (ss[11].Contains("v"))
    {         
        pos.Speed = Int32.Parse(ss[11].Substring(ss[11].IndexOf('V')));
    }
      

  6.   


    if (ss[11].Contains("v"))
    {         
        pos.Speed = Int32.Parse(ss[11].Substring(ss[11].IndexOf('V')));
    }
      

  7.   

    int index = ss[11].IndexOf("v");
    if (index > -1)
    {         
        pos.Speed = Int32.Parse(ss[11].Substring(index));
    }
      

  8.   

    调试运行不到这一句pos.Speed = Int32.Parse(ss[11].Substring(ss[11].IndexOf('V')));
      

  9.   

    说明你没有找到这个“V"。所以StartIndex=-1,
    所以就报你说的错误,不能小于0了
      

  10.   

    if(ss[11].IndexOf('V')>-1)
       pos.Speed = Int32.Parse(ss[11].Substring(ss[11].IndexOf('V')));
      

  11.   

    索引和长度必须引用该字符串内的位置。
    参数名: length pos.Pointed = (ss[3] == "A") ? 1 : 0;                pos.La = Double.Parse(ss[4].Substring(0, 2)) + Double.Parse(ss[4].Substring(2)) / 60;
      

  12.   

    哥们 你那个ss是个什么咚咚??
    string string.Substring(int startIndex, int length);
    你看看你的ss[i]的长度和Substring中的参数是相符
    ss[4].Substring(0, 2)
    ss[4].Substring(2)      // ss[4] 长度时候大于等于2??
      

  13.   

    pos.Pointed = (ss[3] == "A") ? 1 : 0;                pos.La = Double.Parse(ss[4].Substring(0, 2)) + Double.Parse(ss[4].Substring(2)) / 60;
                    if (ss[5] == "S")
                        pos.La = 0 - pos.La;
                    pos.Lo = Double.Parse(ss[6].Substring(0, 3)) + Double.Parse(ss[6].Substring(3)) / 60; //pos.Pointed = (ss[3] == "A") ? 1 : 0;                //pos.La = Double.Parse(ss[3].Substring( 4)) + Double.Parse(ss[3].Substring(4)) / 60;
                    
                    //if(ss[5] == "S")
                    //   [color=#00FFFF] pos
    .La = 0 - pos.La;
                    //pos.Lo = Double.Parse(ss[5].Substring(6)) + Double.Parse(ss[5].Substring(6)) / 60;[/color]  这是修改后的 
     pos pos 得到的值不一样 原来是113.6,34.7 改后就变成960.1666666666 16.66666667