Hallo zusammen,
ich versuche zur Zeit ein Programm zu schreiben
welches mir die Daten eines Messgerätes ausliest und als Text Datei
speichert welche dann danach in Excel eingelesen wird zum weiteren
Auswerten.
Das Messgerät sendet im Sekundentakt Datum Uhrzeit und Messwert, sieht dann folgendermaßen aus: "17.01.2014 11:28 -0125Vs"
Soweit
funktioniert mein Programm auch ganz okay nur habe ich folgendes
Problem, wenn ich die txt Datei in Excel einfüge dann befindet sich
immer eine leere Zeile zwischen den Messdaten, d.h. es wird wohl immer
ein zusätzlicher Zeilenumbruch zwischen den Messwerten eingefügt,
welchen man in der txt Datei selber nicht sieht, da sieht man nur die
Messwerte schön untereinander aufgelistet. Dies ist insofern nervig weil
dieser "unsichtbare Zeilenumbruch" auch ab und zu ganz am Anfang der
Datei ist was dann meine Tabelle um 1 Zeile nach unten verschiebt.
Ein
weiteres Problem ist, dass wenn kein Messgerät angeschlossen ist
folgende Meldung kommt: "Ein Ausnahmefehler des Typs
"System.InvalidOperationException" ist in System.dll aufgetreten.
Zusätzliche Informationen: Der Anschluss ist geschlossen."
Kann man diese Fehlermeldung irgendwie ignorieren und stattdessen eine eigene Fehlermeldung in der msgbox ausgeben?
Spoiler anzeigen
Gruß,
dittohead
ich versuche zur Zeit ein Programm zu schreiben
welches mir die Daten eines Messgerätes ausliest und als Text Datei
speichert welche dann danach in Excel eingelesen wird zum weiteren
Auswerten.
Das Messgerät sendet im Sekundentakt Datum Uhrzeit und Messwert, sieht dann folgendermaßen aus: "17.01.2014 11:28 -0125Vs"
Soweit
funktioniert mein Programm auch ganz okay nur habe ich folgendes
Problem, wenn ich die txt Datei in Excel einfüge dann befindet sich
immer eine leere Zeile zwischen den Messdaten, d.h. es wird wohl immer
ein zusätzlicher Zeilenumbruch zwischen den Messwerten eingefügt,
welchen man in der txt Datei selber nicht sieht, da sieht man nur die
Messwerte schön untereinander aufgelistet. Dies ist insofern nervig weil
dieser "unsichtbare Zeilenumbruch" auch ab und zu ganz am Anfang der
Datei ist was dann meine Tabelle um 1 Zeile nach unten verschiebt.
Ein
weiteres Problem ist, dass wenn kein Messgerät angeschlossen ist
folgende Meldung kommt: "Ein Ausnahmefehler des Typs
"System.InvalidOperationException" ist in System.dll aufgetreten.
Zusätzliche Informationen: Der Anschluss ist geschlossen."
Kann man diese Fehlermeldung irgendwie ignorieren und stattdessen eine eigene Fehlermeldung in der msgbox ausgeben?
VB.NET-Quellcode
- Public Class Form1
- Dim writer As New System.IO.StreamWriter(("C:\Users\Bene\Desktop\1st_" & Format(Now, "Short Date") & ".txt")) 'erstellt txt Datei mit aktuellem Datum für 1. Messung
- Dim writer2 As New System.IO.StreamWriter(("C:\Users\Bene\Desktop\2nd_" & Format(Now, "Short Date") & ".txt")) 'erstellt txt Datei mit aktuellem Datum für 2. Messung
- Dim Messwert
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Mit COM Port verbinden
- Try
- SerialPort1.PortName = TextBox1.Text
- SerialPort1.Open()
- Button1.Enabled = False
- Button2.Enabled = True
- Button3.Enabled = False
- Button5.Enabled = True
- Button6.Enabled = False
- Catch ex As Exception
- MsgBox("Keine Verbindung möglich. Versuchen Sie einen anderen Port.")
- End Try
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'start der 1. Messung
- Button2.Enabled = False
- Button3.Enabled = False
- Button5.Enabled = False
- Button6.Enabled = True
- Me.Timer1.Interval = 1000
- Me.Timer1.Start()
- End Sub
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'Port schließen und Excel öffnen
- SerialPort1.Close()
- Button3.Enabled = False
- Button2.Enabled = False
- Button1.Enabled = True
- Button5.Enabled = False
- Button6.Enabled = False
- Process.Start("C:\Users\Bene\Desktop\Test2.xlsm")
- End Sub
- Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 'Programm schließen
- SerialPort1.Close()
- Me.Close()
- End Sub
- Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing 'Port schließen falls Programm geschlossen wird
- If SerialPort1.IsOpen = True Then
- SerialPort1.Close()
- End If
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 'Messwerte in txt Datei schreiben
- Messwert = SerialPort1.ReadLine
- writer.WriteLine(Messwert)
- End Sub
- Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'start der 2. Messung
- Button2.Enabled = False
- Button3.Enabled = False
- Button5.Enabled = False
- Button6.Enabled = True
- Me.Timer2.Interval = 1000
- Me.Timer2.Start()
- End Sub
- Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick 'Messwerte in txt Datei schreiben
- Messwert = SerialPort1.ReadLine
- writer2.WriteLine(Messwert)
- End Sub
- Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click 'Messung stoppen
- Try
- Dim fs As IO.FileStream = IO.File.OpenWrite("C:\Users\Bene\Desktop\1st_" & Format(Now, "Short Date") & ".txt")
- fs.Close()
- writer2.Close()
- Catch
- writer.Close()
- End Try
- Me.Timer1.Stop()
- Me.Timer2.Stop()
- Button3.Enabled = True
- Button2.Enabled = True
- Button6.Enabled = True
- Button5.Enabled = True
- End Sub
- End Class
Gruß,
dittohead