现在用VB.net的人也很少了,程序都是本科的时候写的,属于自学成才,很怀念当年熬夜写代码debug的自己,没人看也无所谓,算是给自己留个纪念。
1. 窗口界面
这个就个人风格很强烈了,我喜欢简洁的。
2.Form中的代码
Imports System.IO
Public Class Form1
'*************************************************读取.o文件************************************************
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.InitialDirectory = "C:\Users\dell\Desktop\2019工作学习\GPS课程设计"
OpenFileDialog1.Filter = "所有文件(*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.RestoreDirectory = True
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
TextFileName1.Text = OpenFileDialog1.FileName
End If
If TextFileName1.Text <> "" Then
Dim fs As FileStream
fs = New FileStream(TextFileName1.Text, FileMode.OpenOrCreate, FileAccess.Read)
Dim sr As StreamReader
sr = New StreamReader(fs)
sum1 = sr.ReadToEnd
sr.Close()
fs.Close()
End If
Dim sum11(), sum12(), sum13(), sum14(), sum15() As String
sum11 = Split(Trim(sum1), vbLf)
Dim num, num2 As Integer
Dim i, j, k As Integer
'读取卫星的近似位置X0,Y0,Z0
num = UBound(sum11)
sum12 = Split(Trim(sum11(8)), " ")
X0 = CDbl(CDec(Trim(sum12(0))))
Y0 = CDbl(CDec(Trim(sum12(1))))
Z0 = CDbl(CDec(Trim(sum12(2))))
'读取时间
sum13 = Split(Trim(sum11(74)), " ")
' 读取年月日时分秒
Dim prn As String
nian = CInt(sum13(0))
yue = CInt(sum13(1))
ri = CInt(sum13(2))
ho = CInt(sum13(3))
mi = CInt(sum13(4))
se = CInt(sum13(5))
'计算观测时刻瞬时历元 周内秒
'计算这天是星期几
Dim yc As Integer
Dim mc As Integer
Dim fc As Integer
If IsRunnian(nian) Then
mc = Val(Mid("512503514624", yue, 1))
Else
mc = Val(Mid("622503514624", yue, 1))
End If
yc = ((nian Mod 100) \ 4 + (nian Mod 100)) Mod 7
fc = (yc + mc + ri) Mod 7
t = fc * 24 * 3600 + ho * 3600 + mi * 60 + se
'读取序列号PRN(为方便区分省略字母),本次读取10个
prn = sum13(6)
For i = 0 To 9
sum14 = Split(Trim(prn), "G")
prnn(i) = sum14(1 + i)
Next
'读取伪距row
For j = 0 To 9
sum15 = Split(Trim(sum11(76 + j * 2)), " ")
row(j) = CDbl(Replace(sum15(0), " ", ""))
Next
End Sub
'*************************************************读取.n文件************************************************
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
OpenFileDialog1.InitialDirectory = "C:\Users\dell\Desktop\2019工作学习\GPS课程设计"
OpenFileDialog1.Filter = "所有文件(*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.RestoreDirectory = True
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
TextFileName2.Text = OpenFileDialog1.FileName
End If
If TextFileName2.Text <> "" Then
Dim fs As FileStream
fs = New FileStream(TextFileName2.Text, FileMode.OpenOrCreate, FileAccess.Read)
Dim sr As StreamReader
sr = New StreamReader(fs)
sum2 = sr.ReadToEnd
sr.Close()
fs.Close()
End If
Dim sum21(), sum22(), sum23(), sum24(), sum25(), sum26, sum27, sum28, sum29, sum30, sum31, sum32 As String
sum21 = Split(Trim(sum2), vbLf)
Dim num, num2 As Integer
Dim i, j, k As Integer
'读取 ALPHA ,BETA
sum22 = Split(Trim(sum21(3)), " ")
sum23 = Split(Trim(sum21(4)), " ")
For i = 0 To 3
ALPHA(i) = CDec(sum22(i)) '将科学计数法转换成十进制
BETA(i) = CDec(sum23(i))
Next
'********************************读取导航电文等参数*******************************
'a0(9), a1(9), a2(9), IODE(9), Crs(9), dn(9), M0(9), Cuc(9), ee(9), Cus(9), sqrtA(9), TOE(9), Cic(9), omig(9), Cis(9), i0(9), Crc(9), w(9), omigp(9), II(9)
'将从O文件中读取的序列号与N文件匹配,然后读取对应的参数
For i = 0 To 9
For j = 8 To 87
sum26 = Trim(sum21(j))
sum24 = Split(Trim(sum21(j)), " ")
num = Len(sum26)
If sum24(0) = prnn(i) Then
year(i) = sum24(1)
mon(i) = sum24(2)
day(i) = sum24(3)
shi(i) = sum24(4)
fen(i) = sum24(5)
sum25 = Split(Trim(sum24(7)), ".")
miao(i) = sum25(0)
a0(i) = CDec(Trim(Mid(sum26, 23, 19)))
a1(i) = CDec(Trim(Mid(sum26, 42, 19)))
a2(i) = CDec(Trim(Mid(sum26, 61, 19)))
sum27 = sum21(j + 1)
IODE(i) = CDec(Trim(Mid(sum27, 4, 19)))
Crs(i) = CDec(Trim(Mid(sum27, 23, 19)))
dn(i) =