我从serialport1_DataReceived里定义了一个string的局部变量gps1,现在gps1里接收了一串GPS传过来的数据。
数据格式是:
$PUBX,ID,hhmmss.ss,latltade,N,longltade,E,AltRet,NavStat,Hacc,SOG,COG,Vvel,agel,HOOP,VDOP,TOOP,GU,RUDR,
*CS<CR><LF>
我现在想从这一句数据里提取出,ID,时间,经度,玮度,速度,代码要如有编写呀,
大侠看看哈,给点意见或代码参考一下。

解决方案 »

  1.   

    该字符串是使用","分隔的?
    若是,可用Stirng.Split(),即可把各项的内容存放到数组里,取你所需的数据。
    若不是,我想各项应该读会给出长度,逐一读取放到数组里,取你所需的数据。
      

  2.   

    使用gps1.Split(','),得到字符串数组通过固定位置能找到,比如第1个位置是ID
      

  3.   

    string strTest = "abc,de,123"
    string[] aryData = strTest.split(',')结果:
    aryData[0]为:abc
    aryData[1]为:de
    aryData[2]为:123
      

  4.   

    刚才漏了分号了:
    string strTest = "abc,de,123";
    string[] aryData = strTest.split(',');结果:
    aryData[0]为:abc
    aryData[1]为:de
    aryData[2]为:123 
      

  5.   

    我把提取出来的aryData[2]为:123,想把123转换为int 格式的123,
    先定义一个string str="";存放aryData[2]
    用int str1=int.Parse(str);
    系统提示说“输入的字符格式不对”,请问要如何修改?
      

  6.   

    int str1=int.Parse(str); 
    =>
    int str1 = (int)(str)
    or 
    int str1 = Convert.ToInt32(str)
      

  7.   

    我试了一下,发现int str1 = Convert.ToInt32(str)
    可以把str=123传递给str1,但是我要传递的数字里带有小数点,结果就传不了了,
    请问有带小数点的,例如123.123,要如何写代码?
      

  8.   

    float str1 = Convert.ToSingle(str)
      

  9.   

    先分组,然后根据格式提取制定类型的参数,提取双精度浮点数或单精度浮点数:try
    {
      double d=Convert.ToDouble(str);
    }
    catch(Exception e)
    {
    }
    不过在这种处理的过程中最好加上异常处理。