TPS1100-Convert/Form1.vb

713 lines
37 KiB
VB.net
Raw Normal View History

2024-06-10 20:57:35 +02:00
Imports System.IO
2024-06-19 21:00:35 +02:00
Imports System.Runtime.InteropServices.ComTypes
2024-05-29 03:16:22 +02:00
Public Class Form1
2024-06-11 02:02:19 +02:00
Public DatotekaLogfile As String = My.Settings.DatLogfile
2024-06-02 05:35:03 +02:00
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
2024-06-11 02:02:19 +02:00
If DatotekaLogfile = "" Then
DatotekaLogfile = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "tps1100_log.txt")
My.Settings.DatLogfile = DatotekaLogfile
My.Settings.Save()
End If
2024-06-16 05:10:11 +02:00
My.Forms.Form1.Text = My.Application.Info.Title + " " + My.Application.Info.Version.Major.ToString + "." + My.Application.Info.Version.Minor.ToString
2024-06-11 03:16:44 +02:00
RichTextBox1.AppendText(My.Settings.DatLogfile.ToString)
2024-06-13 04:25:40 +02:00
If My.Settings.Pisava = "" Then
My.Settings.Pisava = RichTextBox1.Font.Name
My.Settings.PisavaVelikost = RichTextBox1.Font.Size
My.Settings.Save()
End If
RichTextBox1.Font = New Font(My.Settings.Pisava, My.Settings.PisavaVelikost)
2024-06-02 05:35:03 +02:00
End Sub
2024-06-10 20:57:35 +02:00
2024-06-21 22:02:34 +02:00
Public Sub OdpriDatotekoGsi()
2024-06-10 20:57:35 +02:00
OpenFileDialog1.ReadOnlyChecked = False
2024-05-29 03:16:22 +02:00
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
RichTextBox1.Clear()
2024-06-10 20:57:35 +02:00
ToolStripProgressBar1.Value = 0
2024-06-13 04:25:40 +02:00
streamLines = 0
2024-06-10 20:57:35 +02:00
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
Do Until streamReader.EndOfStream
RichTextBox1.AppendText(streamReader.ReadLine + vbCrLf)
streamLines = streamLines + 1
Loop
ToolStripProgressBar1.Maximum = streamLines
streamReader.Close()
streamReader.Dispose()
My.Settings.Datoteka = OpenFileDialog1.SafeFileName
2024-06-13 04:25:40 +02:00
My.Settings.ZadnjaMapa = Path.GetDirectoryName(OpenFileDialog1.FileName)
2024-06-10 20:57:35 +02:00
tsbFileName.Text = My.Settings.Datoteka
ToolStripStatusLabel1.Text = My.Settings.ZadnjaMapa
2024-05-29 03:16:22 +02:00
tsbSaveAs.Text = "Shrani ..."
tsbSaveAs.Enabled = False
2024-06-21 22:02:34 +02:00
ShraniToolStripMenuItem.Enabled = False
2024-05-29 03:16:22 +02:00
tsbConvert.Enabled = True
tsbPointsOnly.Enabled = True
2024-06-16 05:10:11 +02:00
ToolStripButtonGeo.Enabled = True
2024-06-10 20:57:35 +02:00
ButtonUrediDat.Enabled = True
RichTextBox1.BackColor = SystemColors.Info
LabelDatoteka.Image = My.Resources.icons8_ok_50
My.Settings.Save()
2024-05-29 03:16:22 +02:00
Else
tsbFileName.Text = "Odpri GSI datoteko..."
RichTextBox1.Clear()
tsbSaveAs.Text = "Shrani ..."
tsbSaveAs.Enabled = False
2024-06-21 22:02:34 +02:00
ShraniToolStripMenuItem.Enabled = False
2024-05-29 03:16:22 +02:00
tsbConvert.Enabled = False
tsbPointsOnly.Enabled = False
End If
2024-06-10 20:57:35 +02:00
OpenFileDialog1.Dispose()
2024-05-29 03:16:22 +02:00
End Sub
2024-06-21 22:02:34 +02:00
Public Sub PripraviDatotekoGsi()
If OpenFileDialogTocke.ShowDialog = DialogResult.OK Then
RichTextBox1.Clear()
Dim streamReader As StreamReader = New StreamReader(OpenFileDialogTocke.FileName)
Do Until streamReader.EndOfStream
streamLines = streamLines + 1
Dim readLine As String = streamReader.ReadLine().Replace(" ", vbTab)
readLine = readLine.Replace(";", vbTab)
readLine = readLine.Replace(".", ",")
Dim line() As String = readLine.Split(vbTab)
Dim podPtId As String = "*11" + Format(streamLines, "0000") + "+" + line(0).PadLeft(16, "0") + " "
Dim izrE As Double = line(1) * 1000
Dim podE As String = "81..00+" + Format(izrE, "#0000000000000000") + " "
Dim izrN As Double = line(2) * 1000
Dim podN As String = "82..00+" + Format(izrN, "#0000000000000000") + " "
Dim izrH As Double = line(3) * 1000
Dim podH As String = "83..00+" + Format(izrH, "#0000000000000000") + " "
' Dim podE As String = "81..00+" + izrE2.PadLeft(16, "0") + " "
RichTextBox1.AppendText(podPtId + podE + podN + podH + vbCrLf)
Loop
ToolStripProgressBar1.Maximum = streamLines
streamReader.Close()
streamReader.Dispose()
ToolStripStatusLabel1.Text = "Prebrano: " + streamLines.ToString + "/" + ToolStripProgressBar1.Maximum.ToString + " vrstic"
SaveFileDialog1.Filter = "GSI datoteka|*.GSI"
SaveFileDialog1.FileName = Path.GetFileNameWithoutExtension(OpenFileDialogTocke.FileName)
tsbSaveAs.Enabled = True
ShraniToolStripMenuItem.Enabled = True
tsbSaveAs.Text = "Shrani GSI"
End If
End Sub
Public Sub ShraniDatoteko()
SaveFileDialog1.FileName = Path.GetFileNameWithoutExtension(OpenFileDialog1.FileName)
SaveFileDialog1.InitialDirectory = My.Settings.MapaShrani
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
My.Computer.FileSystem.WriteAllText(DatotekaLogfile, System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " | " + OpenFileDialog1.FileName.ToString + " -> " + SaveFileDialog1.FileName.ToString + vbCrLf, True)
My.Settings.MapaShrani = Path.GetDirectoryName(SaveFileDialog1.FileName)
My.Settings.Save()
ToolStripStatusLabel1.Text = "Datoteka shranjena >>> " + SaveFileDialog1.FileName.ToString
RichTextBox1.BackColor = SystemColors.ControlLightLight
ShraniToolStripMenuItem.Enabled = False
End If
End Sub
Public streamLines As Integer = 0
2024-05-29 03:16:22 +02:00
Private Sub tsbConvert_Click(sender As Object, e As EventArgs) Handles tsbConvert.Click
2024-06-10 20:57:35 +02:00
ToolStripStatusLabel1.Text = "Procesiranje..."
2024-05-29 03:16:22 +02:00
RichTextBox1.Clear()
2024-06-10 20:57:35 +02:00
RichTextBox1.BackColor = SystemColors.Info
2024-06-13 04:25:40 +02:00
RichTextBox1.AppendText("TPS 1100 Zapisnik" + vbCrLf + "++++++++++++++++++++++" + vbCrLf)
2024-06-10 20:57:35 +02:00
ToolStripProgressBar1.Maximum = streamLines
2024-05-29 03:16:22 +02:00
' prepare StreamReader
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
Dim i As Integer = 0
2024-06-10 20:57:35 +02:00
Dim PodatkiStojisce As Boolean = False
Dim dataStolpci As String = ""
2024-06-13 04:25:40 +02:00
If My.Settings.Stolpci = 0 Then
2024-06-10 20:57:35 +02:00
dataStolpci = " "
2024-06-13 04:25:40 +02:00
ElseIf My.Settings.Stolpci = 1 Then
2024-06-10 20:57:35 +02:00
dataStolpci = vbTab
End If
2024-06-13 04:25:40 +02:00
Dim dataKoda As String = ""
2024-05-29 03:16:22 +02:00
' loop untill end of stream
Do Until streamReader.EndOfStream
' Read and Split each line to separate it into fields
Dim line() As String = streamReader.ReadLine().Split(" ")
' Remove * sign from index line
line(0) = Replace(line(0), "*", "")
2024-06-10 20:57:35 +02:00
ToolStripProgressBar1.Value = i
2024-05-29 03:16:22 +02:00
' Check if it's a new station setup
If Microsoft.VisualBasic.Left(line(1), 2) = "25" Then
2024-06-10 20:57:35 +02:00
RichTextBox1.AppendText(vbCrLf + "Station:" + vbCrLf + "****************" + vbCrLf)
2024-06-13 04:25:40 +02:00
RichTextBox1.AppendText("PtID" + dataStolpci + "HzCor" + dataStolpci + "StnE" + dataStolpci + "StnN" + dataStolpci + "StnH" + dataStolpci + "RefHt" + dataStolpci + "InstHt" + vbCrLf)
2024-05-29 03:16:22 +02:00
End If
If Microsoft.VisualBasic.Left(line(1), 2) = "84" Then
2024-06-10 20:57:35 +02:00
RichTextBox1.AppendText(vbCrLf + "Station:" + vbCrLf + "****************" + vbCrLf)
2024-06-13 04:25:40 +02:00
RichTextBox1.AppendText("PtID" + dataStolpci + "StnE" + dataStolpci + "StnN" + dataStolpci + "StnH" + dataStolpci + "RefHt" + dataStolpci + "InstHt" + vbCrLf)
2024-05-29 03:16:22 +02:00
End If
' Seaparate word index and data
For Each readLine As String In line
If readLine = "" Then
' do nothing
Else
' wordindex is always 6 characters long and is read fron left to right
Dim wordIndex As String
wordIndex = Microsoft.VisualBasic.Left(readLine, 2)
' data is always 17 characters long and is read from right to left and has a +/- sign in first place
Dim data As String
2024-06-10 20:57:35 +02:00
Dim dataTmp As String
2024-05-29 03:16:22 +02:00
Dim numData As Double
data = Microsoft.VisualBasic.Right(readLine, 17)
If wordIndex = "11" Then
data = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
ElseIf wordIndex = "19" Then ' Date/Time
2024-06-10 20:57:35 +02:00
data = dataStolpci + "DateTime= " + Microsoft.VisualBasic.Right(data, 8)
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "21" Then ' Horizontal angle
numData = data / 100000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.0000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "22" Then ' Vertical angle
numData = data / 100000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.0000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "25" Then ' Hz. Orientation correction
numData = data / 100000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.0000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "31" Then ' Slope distance
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "32" Then ' Horizontal distance
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "33" Then ' Height difference
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "34" Then ' Stationing
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Station= " + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "35" Then ' Info za offset???
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Offset= " + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "41" Then ' Code
'numData = data
2024-06-13 04:25:40 +02:00
dataKoda = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-06-11 02:02:19 +02:00
If My.Settings.KodeUporabnik = "Da" Then
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaQuickSet Then
data = vbCrLf + "Setup: Quick Set" + vbCrLf + "======================" + vbCrLf + "Hz" + dataStolpci + "V" + dataStolpci + "SD"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = True
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaSetAzi Then
data = vbCrLf + "Setup: Set Hz" + vbCrLf + "======================" + vbCrLf + "PtID" + dataStolpci + "HZ" + dataStolpci + "V" + dataStolpci + "SD" + dataStolpci + "HD" + dataStolpci + "RefHt" + dataStolpci + "PrCons" + dataStolpci + "HtDif" + dataStolpci + "PtCode"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = True
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaResection Then
data = vbCrLf + "Setup: Resection" + vbCrLf + "======================" + vbCrLf + "PtID" + dataStolpci + "HZ" + dataStolpci + "V" + dataStolpci + "SD" + dataStolpci + "HD" + dataStolpci + "RefHt" + dataStolpci + "PrCons" + dataStolpci + "HtDif" + dataStolpci + "PtCode"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = True
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaFreeStation Then
data = vbCrLf + "Setup: Free Station" + vbCrLf + "======================" + vbCrLf + "PtID" + dataStolpci + "HZ" + dataStolpci + "V" + dataStolpci + "SD" + dataStolpci + "HD" + dataStolpci + "RefHt" + dataStolpci + "PrCons" + dataStolpci + "HtDif" + dataStolpci + "PtCode"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = True
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaOriHtTrans Then
data = vbCrLf + "Setup: Orientation & Ht. transfer" + vbCrLf + "======================" + vbCrLf + "PtID" + dataStolpci + "HZ" + dataStolpci + "V" + dataStolpci + "SD" + dataStolpci + "HD" + dataStolpci + "RefHt" + dataStolpci + "PrCons" + dataStolpci + "HtDif" + dataStolpci + "PtCode"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = True
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaMeasOri Then
2024-06-22 01:26:51 +02:00
data = vbCrLf + "Meritve Orientacije" + vbCrLf + "----------------------" + vbCrLf + "PtID" + dataStolpci + "Azi" + dataStolpci + "V" + dataStolpci + "SD" + dataStolpci + "HD" + dataStolpci + "RefHt" + dataStolpci + "PrCons" + dataStolpci + "HtDif" + dataStolpci + "E" + dataStolpci + "N" + dataStolpci + "H" + dataStolpci + "PtCode"
2024-06-13 04:25:40 +02:00
PodatkiStojisce = False
End If
If dataKoda = My.Settings.KodaMeas Then
2024-06-22 01:26:51 +02:00
data = vbCrLf + "Merjeno" + vbCrLf + "----------------------" + vbCrLf + "PtID" + dataStolpci + "Azi" + dataStolpci + "V" + dataStolpci + "SD" + dataStolpci + "HD" + dataStolpci + "RefHt" + dataStolpci + "PrCons" + dataStolpci + "HtDif" + dataStolpci + "E" + dataStolpci + "N" + dataStolpci + "H" + dataStolpci + "PtCode"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = False
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If dataKoda = My.Settings.KodaUserImport Then
2024-06-22 01:26:51 +02:00
data = vbCrLf + "Uvoz/Ročni vnos" + vbCrLf + "----------------------" + vbCrLf + "PtID" + dataStolpci + "E" + dataStolpci + "N" + dataStolpci + "H"
2024-06-10 20:57:35 +02:00
PodatkiStojisce = False
2024-05-29 03:16:22 +02:00
End If
2024-06-16 05:10:11 +02:00
If dataKoda = My.Settings.KodaStojisce Then
2024-06-22 01:26:51 +02:00
data = vbCrLf + "Stojišče Info" + vbCrLf + "----------------------" + vbCrLf + "StID" + dataStolpci + "InstHt" + vbCrLf
2024-06-16 05:10:11 +02:00
PodatkiStojisce = False
End If
If dataKoda = My.Settings.KodaStojisceInfo Then
2024-06-22 02:29:21 +02:00
data = vbCrLf + "Temp.(°C)/Prit.(mbar)" + vbCrLf + "----------------------" + vbCrLf
2024-06-19 21:00:35 +02:00
PodatkiStojisce = False
End If
If dataKoda = My.Settings.KodaStojisceOri Then
2024-06-22 01:26:51 +02:00
data = vbCrLf + "Orientacija Info" + vbCrLf + "----------------------" + vbCrLf + "OrID" + dataStolpci + "Hz" + vbCrLf
2024-06-16 05:10:11 +02:00
PodatkiStojisce = False
End If
2024-06-13 04:25:40 +02:00
If dataKoda = "STA_OFFS" Then
data = "Offsets:" + vbCrLf
2024-06-10 20:57:35 +02:00
PodatkiStojisce = False
2024-05-29 03:16:22 +02:00
End If
End If
ElseIf wordIndex = "42" Then ' Code: Info 1
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Info1= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "43" Then ' Code: Info 2
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Info2= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "44" Then ' Code: Info 3
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Info3= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "45" Then ' Code: Info 4
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Info4= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "47" Then ' Code: Info 6
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Info6= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "58" Then ' Prism constant
numData = data / 10000
2024-06-13 04:25:40 +02:00
data = dataStolpci + Format(numData, "0.0000")
2024-06-19 21:00:35 +02:00
ElseIf wordIndex = "71" Then ' Point Code
2024-06-10 20:57:35 +02:00
dataTmp = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-06-16 05:10:11 +02:00
If dataKoda = My.Settings.KodaStojisce Then
data = dataTmp
2024-06-19 21:00:35 +02:00
End If
If dataKoda = My.Settings.KodaStojisceInfo Then
data = dataTmp
End If
If dataKoda = My.Settings.KodaStojisceOri Then
data = dataTmp
End If
If dataTmp = "" Then
data = ""
End If
ElseIf wordIndex = "72" Then ' Point Code
dataTmp = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
If dataKoda = My.Settings.KodaStojisce Then
Dim dataNum As Double
dataNum = dataTmp / 1000
data = dataStolpci + Format(dataNum, "0.000")
End If
If dataKoda = My.Settings.KodaStojisceInfo Then
2024-06-10 20:57:35 +02:00
data = dataStolpci + dataTmp
End If
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaStojisceOri Then
Dim dataNum As Double
dataNum = dataTmp / 100000
data = dataStolpci + Format(dataNum, "0.0000")
End If
2024-06-11 06:28:09 +02:00
ElseIf wordIndex = "79" Then ' Point Code
dataTmp = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
If dataTmp = "" Then
data = ""
Else
data = dataStolpci + dataTmp
End If
2024-06-10 20:57:35 +02:00
ElseIf wordIndex = "81" And PodatkiStojisce = False Then ' Target Easting
2024-05-29 03:16:22 +02:00
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
ElseIf wordIndex = "82" And PodatkiStojisce = False Then ' Target Northing
2024-05-29 03:16:22 +02:00
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
ElseIf wordIndex = "83" And PodatkiStojisce = False Then ' Target Height
2024-05-29 03:16:22 +02:00
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "84" Then ' Station Easting
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "85" Then ' Station Northing
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "86" Then ' Station Height
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "87" Then ' Reflector height
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "88" Then ' Instriment height
numData = data / 1000
2024-06-10 20:57:35 +02:00
data = dataStolpci + Format(numData, "0.000")
2024-05-29 03:16:22 +02:00
ElseIf wordIndex = "18" Then ' DATE YY.ss
numData = data / 1000000
2024-06-10 20:57:35 +02:00
data = dataStolpci + "Year.Sec= " + Format(numData, "0.00")
2024-05-29 03:16:22 +02:00
Else
numData = 0
2024-06-10 20:57:35 +02:00
data = ""
2024-05-29 03:16:22 +02:00
End If
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
If wordIndex IsNot "11" Then
data = data.ToString.Replace(",", ".")
End If
End If
2024-06-10 20:57:35 +02:00
RichTextBox1.AppendText(data)
2024-05-29 03:16:22 +02:00
End If
Next
RichTextBox1.AppendText(vbCrLf)
2024-06-10 20:57:35 +02:00
i = i + 1
2024-05-29 03:16:22 +02:00
Loop
2024-06-13 04:25:40 +02:00
streamReader.Close()
2024-06-10 20:57:35 +02:00
ToolStripStatusLabel1.Text = "Prebrano: " + i.ToString + "/" + ToolStripProgressBar1.Maximum.ToString + " vrstic"
2024-05-29 03:16:22 +02:00
SaveFileDialog1.Filter = "Zapisnik meritve|*.mer|Text file|*.txt|All files|*.*"
tsbSaveAs.Enabled = True
2024-06-21 22:02:34 +02:00
ShraniToolStripMenuItem.Enabled = True
2024-05-29 03:16:22 +02:00
tsbSaveAs.Text = "Shrani Zapisnik"
End Sub
Private Sub tsbPointsOnly_Click(sender As Object, e As EventArgs) Handles tsbPointsOnly.Click
2024-06-10 20:57:35 +02:00
Dim dataStolpci As String = ""
2024-06-13 04:25:40 +02:00
If My.Settings.Stolpci = 0 Then
2024-06-10 20:57:35 +02:00
dataStolpci = " "
2024-06-13 04:25:40 +02:00
ElseIf My.Settings.Stolpci = 1 Then
2024-06-10 20:57:35 +02:00
dataStolpci = vbTab
End If
2024-06-13 04:25:40 +02:00
2024-05-29 03:16:22 +02:00
RichTextBox1.Clear()
2024-06-10 20:57:35 +02:00
RichTextBox1.BackColor = SystemColors.Info
2024-06-11 05:50:51 +02:00
Dim measuredPoints As Integer = 0
Dim dataKoda As Integer = 0
2024-05-29 03:16:22 +02:00
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
2024-06-10 20:57:35 +02:00
Dim i As Integer = 0
Dim lin As Integer = 0
2024-05-29 03:16:22 +02:00
Do Until streamReader.EndOfStream
' Read and Split each line to separate it into fields
Dim line() As String = streamReader.ReadLine().Split(" ")
' Remove * sign from index line
line(0) = Replace(line(0), "*", "")
2024-06-11 05:50:51 +02:00
If Microsoft.VisualBasic.Left(line(0), 2) = "41" Then
dataKoda = 1
Else
dataKoda = 0
End If
2024-06-10 20:57:35 +02:00
ToolStripProgressBar1.Value = i
2024-06-13 04:25:40 +02:00
'If Microsoft.VisualBasic.Left(line(1), 2) = "81" Then
' measuredPoints = 1
'Else
If Microsoft.VisualBasic.Left(line(1), 2) = "25" Or Microsoft.VisualBasic.Left(line(1), 2) = "84" Then
2024-06-11 05:50:51 +02:00
measuredPoints = 2
2024-05-29 03:16:22 +02:00
End If
' Seaparate word index and data
For Each readLine As String In line
If readLine = "" Then
' do nothing
Else
' wordindex is always 6 characters long and is read fron left to right
Dim wordIndex As String
Dim data As String
Dim numData As Double
2024-06-13 04:25:40 +02:00
wordIndex = Microsoft.VisualBasic.Left(readLine, 2)
2024-05-29 03:16:22 +02:00
data = Microsoft.VisualBasic.Right(readLine, 17)
If wordIndex = "41" Then
2024-06-13 04:25:40 +02:00
Dim dataInfo As String = Microsoft.VisualBasic.Right(readLine, 16).TrimStart("0"c)
2024-06-19 21:00:35 +02:00
If dataInfo = My.Settings.KodaMeas Then
2024-05-29 03:16:22 +02:00
measuredPoints = 1
2024-06-13 04:25:40 +02:00
ElseIf dataInfo = My.Settings.KodaUserImport Then
2024-06-10 20:57:35 +02:00
measuredPoints = 2
2024-06-16 05:10:11 +02:00
ElseIf dataInfo = My.Settings.KodaMeasOri Then
measuredPoints = 3
2024-06-13 04:25:40 +02:00
Else
measuredPoints = 0
2024-05-29 03:16:22 +02:00
End If
End If
2024-06-11 05:50:51 +02:00
If wordIndex = "71" And measuredPoints >= 1 Then ' Point Code
data = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
If data = "" Then
' nič
Else
RichTextBox1.AppendText(dataStolpci + data)
End If
End If
2024-06-10 20:57:35 +02:00
If wordIndex = "11" And measuredPoints >= 1 Then
2024-05-29 03:16:22 +02:00
data = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(data)
2024-06-10 20:57:35 +02:00
i = i + 1
ElseIf wordIndex = "81" And measuredPoints >= 1 Then ' Target Easting
2024-05-29 03:16:22 +02:00
numData = data / 1000
data = Format(numData, "0.000")
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
data = data.ToString.Replace(",", ".")
End If
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(dataStolpci + data)
2024-06-10 20:57:35 +02:00
ElseIf wordIndex = "82" And measuredPoints >= 1 Then ' Target Northing
2024-05-29 03:16:22 +02:00
numData = data / 1000
data = Format(numData, "0.000")
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
data = data.ToString.Replace(",", ".")
End If
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(dataStolpci + data)
2024-06-10 20:57:35 +02:00
ElseIf wordIndex = "83" And measuredPoints >= 1 Then ' Target Height
2024-05-29 03:16:22 +02:00
numData = data / 1000
data = Format(numData, "0.000")
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
data = data.ToString.Replace(",", ".")
End If
2024-06-16 05:10:11 +02:00
If measuredPoints = 1 Then
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(dataStolpci + data + dataStolpci + "MEAS")
2024-06-16 05:10:11 +02:00
ElseIf measuredPoints = 2 Then
RichTextBox1.AppendText(dataStolpci + data + dataStolpci + "REF")
ElseIf measuredPoints = 3 Then
RichTextBox1.AppendText(dataStolpci + data + dataStolpci + "ORI")
2024-06-10 20:57:35 +02:00
End If
2024-06-13 04:25:40 +02:00
ElseIf wordIndex = "84" And measuredPoints >= 1 Then ' Station Easting
2024-05-29 03:16:22 +02:00
numData = data / 1000
data = Format(numData, "0.000")
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
data = data.ToString.Replace(",", ".")
End If
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(dataStolpci + data)
2024-06-13 04:25:40 +02:00
ElseIf wordIndex = "85" And measuredPoints >= 1 Then ' Station Northing
2024-05-29 03:16:22 +02:00
numData = data / 1000
data = Format(numData, "0.000")
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
data = data.ToString.Replace(",", ".")
End If
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(dataStolpci + data)
2024-06-13 04:25:40 +02:00
ElseIf wordIndex = "86" And measuredPoints >= 1 Then ' Station Height
2024-05-29 03:16:22 +02:00
numData = data / 1000
data = Format(numData, "0.000")
2024-06-13 04:25:40 +02:00
If My.Settings.DecimalnoLocilo = "Pika" Then
2024-05-29 03:16:22 +02:00
data = data.ToString.Replace(",", ".")
End If
2024-06-11 05:50:51 +02:00
RichTextBox1.AppendText(dataStolpci + data + dataStolpci + "STA")
2024-05-29 03:16:22 +02:00
Else
numData = 0
data = ""
End If
End If
Next
2024-06-11 05:50:51 +02:00
If dataKoda = 0 And measuredPoints >= 1 Then
RichTextBox1.AppendText(vbCrLf)
End If
2024-06-10 20:57:35 +02:00
lin = lin + 1
ToolStripProgressBar1.Value = lin
2024-05-29 03:16:22 +02:00
Loop
2024-06-10 20:57:35 +02:00
ToolStripStatusLabel1.Text = "Prebrano točk: " + i.ToString
2024-06-13 04:25:40 +02:00
SaveFileDialog1.Filter = "KOO|*.koo|TXT|*.txt|All files|*.*"
2024-05-29 03:16:22 +02:00
streamReader.Close()
tsbSaveAs.Enabled = True
2024-06-21 22:02:34 +02:00
ShraniToolStripMenuItem.Enabled = True
2024-05-29 03:16:22 +02:00
tsbSaveAs.Text = "Shrani Točke"
End Sub
2024-06-19 21:00:35 +02:00
' Priprava GEO datoteke
2024-06-16 05:10:11 +02:00
Private Sub ToolStripButtonGeo_Click(sender As Object, e As EventArgs) Handles ToolStripButtonGeo.Click
RichTextBox1.Clear()
RichTextBox1.BackColor = Color.LemonChiffon
Dim measuredPoints As Integer = 0
Dim dataKoda As String = ""
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
Dim i As Integer = 0
Dim lin As Integer = 0
2024-06-19 21:00:35 +02:00
Dim infoTemp As String = "20"
Dim infoPress As String = "759.81"
2024-06-16 05:10:11 +02:00
2024-06-19 21:00:35 +02:00
' Branje datoteke
2024-06-16 05:10:11 +02:00
Do Until streamReader.EndOfStream
2024-06-19 21:00:35 +02:00
' Beri datoteko po vrsticah, razdelitev na posamezne podatke (array)
2024-06-16 05:10:11 +02:00
Dim line() As String = streamReader.ReadLine().Split(" ")
2024-06-19 21:00:35 +02:00
line(0) = Replace(line(0), "*", "") ' Odstrani * na začetku vrstice
Dim izpisText As String = ""
2024-06-16 05:10:11 +02:00
If Microsoft.VisualBasic.Left(line(0), 2) = "41" Then
2024-06-19 21:00:35 +02:00
2024-06-16 05:10:11 +02:00
dataKoda = Microsoft.VisualBasic.Right(line(0), 16).TrimStart("0"c)
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaStojisce Then
Dim infoSta As String
infoSta = Microsoft.VisualBasic.Right(line(1), 16).TrimStart("0"c)
Dim infoStaHt As String
infoStaHt = Microsoft.VisualBasic.Right(line(2), 17).TrimStart("0"c)
Dim numStaHt As Double
numStaHt = infoStaHt / 1000
izpisText = infoSta + " " + Format(numStaHt, "0.000").ToString + vbCrLf
measuredPoints = 0
End If
' Nastavi podatke o temperaturi in pritisku, če je podana koda za "KodaStojisceInfo"
' Sicer uporabi prednastavljene vrednosti "infoTemp" in "infoPress"
If dataKoda = My.Settings.KodaStojisceInfo Then
infoTemp = Microsoft.VisualBasic.Right(line(1), 16).TrimStart("0"c)
infoPress = Microsoft.VisualBasic.Right(line(2), 16).TrimStart("0"c)
Dim numPress As Double
numPress = infoPress * 0.750062
infoPress = Format(numPress, "0.00").ToString
2024-06-22 01:26:51 +02:00
'If measuredPoints = 0 Then
' izpisText = infoTemp + " " + infoPress + vbCrLf
'End If
2024-06-21 22:02:34 +02:00
2024-06-19 21:00:35 +02:00
measuredPoints = 0
End If
If dataKoda = My.Settings.KodaStojisceOri Then
Dim infoOri As String
infoOri = Microsoft.VisualBasic.Right(line(1), 16).TrimStart("0"c)
Dim infoOriHz As String
infoOriHz = Microsoft.VisualBasic.Right(line(2), 17).TrimStart("0"c)
Dim numOriHz As Double
numOriHz = infoOriHz / 100000
izpisText = infoOri + " " + Format(numOriHz, "0.0000").ToString + vbCrLf
measuredPoints = 0
End If
If dataKoda = My.Settings.KodaUserImport Then
2024-06-21 22:02:34 +02:00
measuredPoints = 1
2024-06-16 05:10:11 +02:00
End If
If dataKoda = My.Settings.KodaMeasOri Then
2024-06-19 21:00:35 +02:00
izpisText = infoTemp + " " + infoPress + vbCrLf
2024-06-16 05:10:11 +02:00
measuredPoints = 0
End If
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaMeas Then
izpisText = "0 0" + vbCrLf
measuredPoints = 1
End If
If dataKoda = My.Settings.KodaQuickSet And lin > 0 And measuredPoints = 1 Then
2024-06-16 05:10:11 +02:00
izpisText = "-1 0 0 0 0" + vbCrLf
measuredPoints = 0
End If
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaSetAzi And lin > 0 And measuredPoints = 1 Then
2024-06-16 05:10:11 +02:00
izpisText = "-1 0 0 0 0" + vbCrLf
measuredPoints = 0
End If
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaResection And lin > 0 And measuredPoints = 1 Then
2024-06-16 05:10:11 +02:00
izpisText = "-1 0 0 0 0" + vbCrLf
measuredPoints = 0
End If
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaFreeStation And lin > 0 And measuredPoints = 1 Then
2024-06-16 05:10:11 +02:00
izpisText = "-1 0 0 0 0" + vbCrLf
measuredPoints = 0
End If
2024-06-19 21:00:35 +02:00
If dataKoda = My.Settings.KodaOriHtTrans And lin > 0 And measuredPoints = 1 Then
2024-06-16 05:10:11 +02:00
izpisText = "-1 0 0 0 0" + vbCrLf
measuredPoints = 0
End If
End If
If Microsoft.VisualBasic.Left(line(0), 2) = "11" Then
If dataKoda = My.Settings.KodaMeas Then
Dim dataId As String
dataId = Microsoft.VisualBasic.Right(line(0), 16).TrimStart("0"c)
Dim dataAzi As String
dataAzi = Microsoft.VisualBasic.Right(line(1), 17)
Dim numAzi As Double
numAzi = dataAzi / 100000
Dim dataV As String
dataV = Microsoft.VisualBasic.Right(line(2), 17)
Dim numV As Double
numV = dataV / 100000
Dim dataSD As String
dataSD = Microsoft.VisualBasic.Right(line(3), 17)
Dim numSD As Double
numSD = dataSD / 1000
Dim dataHr As String
dataHr = Microsoft.VisualBasic.Right(line(5), 17)
Dim numHr As Double
numHr = dataHr / 1000
izpisText = dataId + " " + Format(numAzi, "0.0000").ToString + " " + Format(numV, "0.0000").ToString + " " + Format(numSD, "0.000").ToString + " " + Format(numHr, "0.000").ToString + vbCrLf
End If
If dataKoda = My.Settings.KodaMeasOri Then
Dim dataId As String
dataId = Microsoft.VisualBasic.Right(line(0), 16).TrimStart("0"c)
Dim dataAzi As Double
dataAzi = Microsoft.VisualBasic.Right(line(1), 17)
Dim numAzi As Double
numAzi = dataAzi / 100000
izpisText = dataId + " " + Format(numAzi, "0.0000").ToString + vbCrLf
End If
If dataKoda = My.Settings.KodaQuickSet Then
If Microsoft.VisualBasic.Left(line(1), 2) = "84" Then
Dim dataSta As String
dataSta = Microsoft.VisualBasic.Right(line(0), 16).TrimStart("0"c)
Dim dataHi As Double
dataHi = Microsoft.VisualBasic.Right(line(4), 17)
Dim numHi As Double
numHi = dataHi / 1000
izpisText = dataSta + " " + Format(numHi, "0.000").ToString + vbCrLf
End If
End If
' ElseIf dataKoda = My.Settings.KodaSetAzi Then
'
' ElseIf dataKoda = My.Settings.KodaResection Then
'
If dataKoda = My.Settings.KodaFreeStation Then
If Microsoft.VisualBasic.Left(line(1), 2) = "25" Then
Dim dataSta As String
dataSta = Microsoft.VisualBasic.Right(line(0), 16).TrimStart("0"c)
Dim dataHi As Double
dataHi = Microsoft.VisualBasic.Right(line(6), 17)
Dim numHi As Double
numHi = dataHi / 1000
izpisText = dataSta + " " + Format(numHi, "0.000").ToString + vbCrLf
End If
End If
' ElseIf dataKoda = My.Settings.KodaOriHtTrans Then
End If
RichTextBox1.AppendText(izpisText)
lin = lin + 1
ToolStripProgressBar1.Value = lin
Loop
RichTextBox1.AppendText("-1 0 0 0 0" + vbCrLf)
streamReader.Close()
streamReader.Dispose()
ToolStripStatusLabel1.Text = "Prebrano: " + lin.ToString + "/" + ToolStripProgressBar1.Maximum.ToString + " vrstic"
SaveFileDialog1.Filter = "GEO datoteka|*.GEO"
SaveFileDialog1.FileName = Path.GetFileNameWithoutExtension(OpenFileDialogTocke.FileName)
tsbSaveAs.Enabled = True
2024-06-21 22:02:34 +02:00
ShraniToolStripMenuItem.Enabled = True
2024-06-16 05:10:11 +02:00
tsbSaveAs.Text = "Shrani GEO"
End Sub
2024-06-19 21:00:35 +02:00
2024-06-21 22:02:34 +02:00
Private Sub InfoOAplikacijiToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InfoOAplikacijiToolStripMenuItem.Click
' MessageBox.Show("Za konvertiranje GSI datoteke najprej izberi datoteko, ki jo želiš konvertirati z ukazom 'Open File'. Nato izberi metodo konverzije (Poročilo, Merjene točke, Vse točke). Po končani knverziji shrani novo datoteko z ukazom 'Save As...'","Kratka navodila")
SplashScreen1.ShowDialog()
End Sub
Private Sub PripraviGSIToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PripraviGSIToolStripMenuItem.Click
2024-06-19 21:00:35 +02:00
Process.Start("Navodila.pdf")
End Sub
2024-06-21 22:02:34 +02:00
Private Sub OdpriGSIToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OdpriGSIToolStripMenuItem.Click
FormNastavitve.ShowDialog()
End Sub
Private Sub OdpriGSIToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles OdpriGSIToolStripMenuItem1.Click
OdpriDatotekoGsi()
End Sub
Private Sub tsbOpenFile_Click(sender As Object, e As EventArgs) Handles tsbOpenFile.Click
OdpriDatotekoGsi()
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ButtonUrediDat.Click
Form2.ShowDialog()
End Sub
Private Sub ToolStripButtonNast_Click(sender As Object, e As EventArgs)
FormNastavitve.ShowDialog()
End Sub
Private Sub ToolStripButtonPripravi_Click(sender As Object, e As EventArgs) Handles ToolStripButtonPripravi.Click
PripraviDatotekoGsi()
End Sub
Private Sub PripraviGSIToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles PripraviGSIToolStripMenuItem1.Click
PripraviDatotekoGsi()
End Sub
Private Sub tsbSaveAs_Click(sender As Object, e As EventArgs) Handles tsbSaveAs.Click
ShraniDatoteko()
End Sub
Private Sub ShraniToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShraniToolStripMenuItem.Click
ShraniDatoteko()
End Sub
Private Sub IzhodToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles IzhodToolStripMenuItem.Click
Me.Close()
Application.Exit()
End Sub
2024-05-29 03:16:22 +02:00
End Class