📄 loadnavifile.bas
字号:
Attribute VB_Name = "调入导航电文"
'---------------------------------------------------------------------------------
'调入导航数据到Sates()
'---------------------------------------------------------------------------------
Public Function Load_Nav_Msg(FILESTRING As String)
Dim filenum As Integer
Dim temp As String
Dim i As Integer, j As Integer, k As Integer
filenum = FreeFile()
Open FILESTRING For Input As #filenum
'1.跳过文件头
Do While True
Line Input #filenum, temp
If Right(temp, 13) = "END OF HEADER" Then
Exit Do
End If
Loop
'2.开始读取数据
'动态数组的动态数组
i = 0 '编号
Do While Not EOF(filenum)
ReDim Preserve Sates(i) '添加一个轨道
Line Input #filenum, temp '第一行
Sates(i).Prn = Val(Mid(temp, 1, 2))
Sates(i).TOC.Y = Val(Mid(temp, 4, 2))
If Sates(i).TOC.Y < 80 Then
Sates(i).TOC.Y = Sates(i).TOC.Y + 2000
Else
Sates(i).TOC.Y = Sates(i).TOC.Y + 1900
End If
Sates(i).TOC.M = Val(Mid(temp, 7, 2))
Sates(i).TOC.D = Val(Mid(temp, 10, 2))
Sates(i).TOC.h = Val(Mid(temp, 13, 2))
Sates(i).TOC.Min = Val(Mid(temp, 15, 2))
Sates(i).TOC.s = Val(Mid(temp, 17, 5))
Sates(i).Clockd = Val(Mid(temp, 23, 19))
Sates(i).Clockv = Val(Mid(temp, 42, 19))
Sates(i).Clocka = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第二行
Sates(i).IODE = Val(Mid(temp, 4, 19))
Sates(i).Crs = Val(Mid(temp, 23, 19))
Sates(i).deltan = Val(Mid(temp, 42, 19))
Sates(i).M0 = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第三行
Sates(i).Cuc = Val(Mid(temp, 4, 19))
Sates(i).E = Val(Mid(temp, 23, 19))
Sates(i).Cus = Val(Mid(temp, 42, 19))
Sates(i).sA = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第四行
Sates(i).TOE = Val(Mid(temp, 4, 19))
Sates(i).Cic = Val(Mid(temp, 23, 19))
Sates(i).Omega = Val(Mid(temp, 42, 19))
Sates(i).Cis = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第五行
Sates(i).I0 = Val(Mid(temp, 4, 19))
Sates(i).Crc = Val(Mid(temp, 23, 19))
Sates(i).W = Val(Mid(temp, 42, 19))
Sates(i).Omegadot = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第六行
Sates(i).Idot = Val(Mid(temp, 4, 19))
Sates(i).L2 = Val(Mid(temp, 23, 19))
Sates(i).GpsWeek = Val(Mid(temp, 42, 19))
Sates(i).L2P = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第七行
Sates(i).SateN = Val(Mid(temp, 4, 19))
Sates(i).SateHealth = Val(Mid(temp, 23, 19))
Sates(i).TGD = Val(Mid(temp, 42, 19))
Sates(i).IODC = Val(Mid(temp, 61, 19))
Line Input #filenum, temp '第八行
Sates(i).Tom = Val(Mid(temp, 4, 19))
i = i + 1
Loop
Close #filenum
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -