TPS1100-Convert/Form1.vb

402 lines
21 KiB
VB.net
Raw Normal View History

2024-06-02 05:35:03 +02:00
Imports System.Configuration
Imports System.IO
Imports TPS1100_Convert.My
2024-05-29 03:16:22 +02:00
Public Class Form1
2024-06-02 05:35:03 +02:00
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ToolStripComboBox2.Text = My.Settings.DecimalnoLocilo
End Sub
2024-05-29 03:16:22 +02:00
Private Sub tsbOpenFile_Click(sender As Object, e As EventArgs) Handles tsbOpenFile.Click
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
tsbFileName.Text = OpenFileDialog1.SafeFileName
RichTextBox1.Clear()
tsbSaveAs.Text = "Shrani ..."
tsbSaveAs.Enabled = False
tsbConvert.Enabled = True
tsbPointsOnly.Enabled = True
Else
tsbFileName.Text = "Odpri GSI datoteko..."
RichTextBox1.Clear()
tsbSaveAs.Text = "Shrani ..."
tsbSaveAs.Enabled = False
tsbConvert.Enabled = False
tsbPointsOnly.Enabled = False
End If
End Sub
Private Sub tsbConvert_Click(sender As Object, e As EventArgs) Handles tsbConvert.Click
RichTextBox1.Clear()
RichTextBox1.AppendText("TPS 1100 GSI Conversion" + vbCrLf + "++++++++++++++++++++++++++++++++" + vbCrLf)
' prepare StreamReader
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
Dim i As Integer = 0
' 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-02 05:35:03 +02:00
If i = 0 Then
End If
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
RichTextBox1.AppendText(vbCrLf + "Station:" + vbCrLf + "*************" + vbCrLf)
'RichTextBox1.AppendText("PtName:" + vbTab + "Hz.Corr.:" + vbTab + "StnE:" + vbTab + "StnN:" + vbTab + "StnH:" + vbTab + "Refl.h.: " + vbTab + "Inst.h.: " + vbCrLf)
End If
If Microsoft.VisualBasic.Left(line(1), 2) = "84" Then
RichTextBox1.AppendText(vbCrLf + "Station:" + vbCrLf + "*************" + vbCrLf)
'RichTextBox1.AppendText("PtName:" + vbTab + "StnE:" + vbTab + "StnN:" + vbTab + "StnH:" + vbTab + "Refl.h.: " + vbTab + "Inst.h.: " + vbCrLf)
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
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
data = "DateTime= " + Microsoft.VisualBasic.Right(data, 8)
ElseIf wordIndex = "21" Then ' Horizontal angle
numData = data / 100000
data = Format(numData, "0.0000")
ElseIf wordIndex = "22" Then ' Vertical angle
numData = data / 100000
data = Format(numData, "0.0000")
ElseIf wordIndex = "25" Then ' Hz. Orientation correction
numData = data / 100000
data = "HzCor= " + Format(numData, "0.0000")
ElseIf wordIndex = "31" Then ' Slope distance
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "32" Then ' Horizontal distance
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "33" Then ' Height difference
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "34" Then ' Stationing
numData = data / 1000
data = "Station= " + Format(numData, "0.000")
ElseIf wordIndex = "35" Then ' Info za offset???
numData = data / 1000
data = "Offset= " + Format(numData, "0.000")
ElseIf wordIndex = "41" Then ' Code
'numData = data
'data = "Code= " + numData.ToString
If ToolStripComboBox1.Text = "Da" Then
If data = "+0000000000000010" Then
data = vbCrLf + "Setup: Quick Set" + vbCrLf + "============================="
End If
If data = "+0000000000000020" Then
data = vbCrLf + "Setup: Set Hz" + vbCrLf + "=============================" + vbCrLf + "PtID HZ V SD HD RefHt PrCon HtDif E N H PtCode"
End If
If data = "+0000000000000030" Then
data = vbCrLf + "Setup: Resection" + vbCrLf + "=============================" + vbCrLf + "PtID HZ V SD HD RefHt PrCon HtDif E N H PtCode"
End If
If data = "+0000000000000040" Then
data = vbCrLf + "Setup: Free Station" + vbCrLf + "=============================" + vbCrLf + "PtID HZ V SD HD RefHt PrCon HtDif E N H PtCode"
End If
If data = "+0000000000000050" Then
data = vbCrLf + "Setup: Orientation & Ht. transfer" + vbCrLf + "=============================" + vbCrLf + "PtID HZ V SD HD RefHt PrCon HtDif E N H PtCode"
End If
If data = "+0000000000000090" Then
data = vbCrLf + "Measured:" + vbCrLf + "-------------------" + vbCrLf + "PtID HZ V SD HD RefHt PrCon HtDif E N H PtCode"
End If
If data = "+0000000000000099" Then
data = "Imported:" + vbCrLf + "-------------------"
End If
If data = "+00000000STA_OFFS" Then
data = "Offsets: " + vbCrLf
End If
End If
ElseIf wordIndex = "42" Then ' Code: Info 1
data = "Info1= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
ElseIf wordIndex = "43" Then ' Code: Info 2
data = "Info2= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
ElseIf wordIndex = "44" Then ' Code: Info 3
data = "Info3= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
ElseIf wordIndex = "45" Then ' Code: Info 4
data = "Info4= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
ElseIf wordIndex = "47" Then ' Code: Info 6
data = "Info6= " + Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
ElseIf wordIndex = "58" Then ' Prism constant
numData = data / 10000
data = numData.ToString
ElseIf wordIndex = "71" Then ' Point Code
numData = data
data = numData.ToString
ElseIf wordIndex = "81" Then ' Target Easting
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "82" Then ' Target Northing
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "83" Then ' Target Height
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "84" Then ' Station Easting
numData = data / 1000
data = "StE= " + Format(numData, "0.000")
ElseIf wordIndex = "85" Then ' Station Northing
numData = data / 1000
data = "StN= " + Format(numData, "0.000")
ElseIf wordIndex = "86" Then ' Station Height
numData = data / 1000
data = "StH= " + Format(numData, "0.000")
ElseIf wordIndex = "87" Then ' Reflector height
numData = data / 1000
data = Format(numData, "0.000")
ElseIf wordIndex = "88" Then ' Instriment height
numData = data / 1000
data = "InstHt= " + Format(numData, "0.000")
ElseIf wordIndex = "18" Then ' DATE YY.ss
numData = data / 1000000
data = "Year.Sec= " + Format(numData, "0.00")
Else
numData = 0
End If
If ToolStripComboBox2.Text = "Pika" Then
If wordIndex IsNot "11" Then
data = data.ToString.Replace(",", ".")
End If
End If
RichTextBox1.AppendText(data + " ")
End If
Next
RichTextBox1.AppendText(vbCrLf)
Loop
ToolStripStatusLabel1.Text = "Konverzija končana. Shrani datoteko!"
SaveFileDialog1.Filter = "Zapisnik meritve|*.mer|Text file|*.txt|All files|*.*"
streamReader.Close()
tsbSaveAs.Enabled = True
tsbSaveAs.Text = "Shrani Zapisnik"
End Sub
Private Sub tsbSaveAs_Click(sender As Object, e As EventArgs) Handles tsbSaveAs.Click
SaveFileDialog1.FileName = Path.GetFileNameWithoutExtension(OpenFileDialog1.FileName)
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
ToolStripStatusLabel1.Text = "Shranjeno: " + SaveFileDialog1.FileName.ToString
End If
End Sub
Private Sub tsbPointsOnly_Click(sender As Object, e As EventArgs) Handles tsbPointsOnly.Click
RichTextBox1.Clear()
Dim measuredPoints As Integer = 1
Dim newStation As Integer = 0
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
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), "*", "")
If Microsoft.VisualBasic.Left(line(1), 2) = "25" Then
measuredPoints = 1
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
Dim numData As Double
data = Microsoft.VisualBasic.Right(readLine, 17)
If wordIndex = "41" Then
If data = "+00000000STA_OFFS" Then
data = "90"
End If
numData = data
If numData >= 90 Then
measuredPoints = 1
ElseIf numData >= 10 < 90 Then
measuredPoints = 0
End If
End If
If wordIndex = "11" And measuredPoints = 1 Then
data = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "81" And measuredPoints = 1 Then ' Target Easting
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "82" And measuredPoints = 1 Then ' Target Northing
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "83" And measuredPoints = 1 Then ' Target Height
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + vbCrLf)
ElseIf wordIndex = "84" And measuredPoints = 1 Then ' Station Easting
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "85" And measuredPoints = 1 Then ' Station Northing
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "86" And measuredPoints = 1 Then ' Station Height
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + vbCrLf)
Else
numData = 0
data = ""
End If
End If
Next
Loop
ToolStripStatusLabel1.Text = "Konverzija končana. Shrani datoteko!"
SaveFileDialog1.Filter = "KOO datoteka|*.koo|Text file|*.txt|All files|*.*"
streamReader.Close()
tsbSaveAs.Enabled = True
tsbSaveAs.Text = "Shrani Točke"
End Sub
Private Sub tsbKooConvert_Click(sender As Object, e As EventArgs)
RichTextBox1.Clear()
Dim measuredPoints As Integer = 0
Dim newStation As Integer = 0
Dim streamReader As StreamReader = New StreamReader(OpenFileDialog1.FileName)
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), "*", "")
If Microsoft.VisualBasic.Left(line(1), 2) = "25" Then
newStation = 1
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
Dim numData As Double
data = Microsoft.VisualBasic.Right(readLine, 17)
If wordIndex = "11" Then
data = Microsoft.VisualBasic.Right(data, 16).TrimStart("0"c)
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "81" Then ' Target Easting
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "82" Then ' Target Northing
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "83" Then ' Target Height
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + vbCrLf)
ElseIf wordIndex = "84" Then ' Station Easting
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "85" Then ' Station Northing
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + " ")
ElseIf wordIndex = "86" Then ' Station Height
numData = data / 1000
data = Format(numData, "0.000")
If ToolStripComboBox2.Text = "Pika" Then
data = data.ToString.Replace(",", ".")
End If
RichTextBox1.AppendText(data + vbCrLf)
Else
numData = 0
data = ""
End If
End If
Next
Loop
ToolStripStatusLabel1.Text = "Konverzija končana. Shrani datoteko!"
SaveFileDialog1.Filter = "KOO datoteka|*.koo|Text file|*.txt|All files|*.*"
streamReader.Close()
tsbSaveAs.Enabled = True
tsbSaveAs.Text = "Shrani Točke"
End Sub
Private Sub tsbHelp_Click(sender As Object, e As EventArgs) Handles tsbHelp.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")
End Sub
2024-06-02 05:35:03 +02:00
Private Sub ToolStripComboBox2_Click(sender As Object, e As EventArgs) Handles MyBase.FormClosing
My.Settings.DecimalnoLocilo = ToolStripComboBox2.Text
My.Settings.Save()
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
Form2.ShowDialog()
End Sub
2024-05-29 03:16:22 +02:00
End Class