我用VB寫了小程式去讀GPS從COM6傳來的資料
我想從一堆資料裡面擷取相同的某一段
把逗號之間的字串拆開
依序放到15個txtbox裡面
但是寫到一半覺得怪怪的,能否請各位先進指導! 謝謝!
程式碼如下:
Dim buf$, ReceiveStr$, InStr$, StrPos$
Dim ReceiveData!(12)
Dim Text!(12)
L01:
buf = Trim(MSComm1.Input)
If InStr(1, buf, "!") > 1 Then
ReceiveStr = ReceiveStr + buf
Else
Do
StrPos = InStr(1, ReceiveStr, ",")
If StrPos = 0 Then Exit Do
ReceiveData(i) = Str(Left(ReceiveStr, StrPos - 1))
ReceiveStr = Right(ReceiveStr, Len(ReceiveStr) - InStr(1, ReceiveStr, ","))
Loop
End If
我想從一堆資料裡面擷取相同的某一段
把逗號之間的字串拆開
依序放到15個txtbox裡面
但是寫到一半覺得怪怪的,能否請各位先進指導! 謝謝!
程式碼如下:
Dim buf$, ReceiveStr$, InStr$, StrPos$
Dim ReceiveData!(12)
Dim Text!(12)
L01:
buf = Trim(MSComm1.Input)
If InStr(1, buf, "!") > 1 Then
ReceiveStr = ReceiveStr + buf
Else
Do
StrPos = InStr(1, ReceiveStr, ",")
If StrPos = 0 Then Exit Do
ReceiveData(i) = Str(Left(ReceiveStr, StrPos - 1))
ReceiveStr = Right(ReceiveStr, Len(ReceiveStr) - InStr(1, ReceiveStr, ","))
Loop
End If
文章標籤
全站熱搜

忘了說,讀取到的資料就向下面這樣 我只要其中某一段,並且不斷地更新到textbox裡面 我要擷取的是$GPGGA的那一行 $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPRMC,085253.413,V,2445.4542,N,12056.8434,E,,,311203,,*12 $GPGGA,085254.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4D $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPGSV,3,1,09,28,75,214,00,07,49,339,42,20,44,056,00,04,41,269,43*72 $GPGSV,3,2,09,11,14,053,00,08,12,201,00,01,09,113,00,24,08,246,00*7F $GPGSV,3,3,09,13,07,146,00*46 $GPRMC,085254.413,V,2445.4542,N,12056.8434,E,,,311203,,*15 $GPGGA,085255.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4C $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPRMC,085255.413,V,2445.4542,N,12056.8434,E,,,311203,,*14 $GPGGA,085256.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4F $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPRMC,085256.413,V,2445.4542,N,12056.8434,E,,,311203,,*17 $GPGGA,085257.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4E $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPRMC,085257.413,V,2445.4542,N,12056.8434,E,,,311203,,*16 $GPGGA,085258.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*41 $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPRMC,085258.413,V,2445.4542,N,12056.8434,E,,,311203,,*19 $GPGGA,085259.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*40 $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPGSV,3,1,09,28,75,214,00,07,49,339,42,20,44,056,00,04,41,269,43*72 $GPGSV,3,2,09,11,14,053,00,08,12,201,00,01,09,113,00,24,08,246,00*7F $GPGSV,3,3,09,13,07,146,00*46 $GPRMC,085259.413,V,2445.4542,N,12056.8434,E,,,311203,,*18 $GPGGA,085300.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4D $GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05 $GPRMC,085300.413,V,2445.4542,N,12056.8434,E,,,311203,,*15 $GPGGA,085301.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4C
將你讀進來的那一行資料放入變數 此時Read_d=$GPGGA,085257.413,2445.4542,N,12056.8434,E,0,00,50.0,139.7,M,15.0,M,0.0,0000*4E E = Split(Read_d, ",")'將變數內容按照","切割放入陣列E E(0),E(1),E(2)....就是你要放入文字框的內容了