Array mit Split füllen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Devilstar.

    Array mit Split füllen

    Hallo Zusammen,

    ich brauche eure Hilfe. Ich möchte von einen Mikrocontroller Daten an den Pc senden. Diese Daten haben das Format 343:243:343: . Dabei sollen die doppel Punkte die Trennzeichen sein. Diese Zahlen sollen nun in 3 einzelnen Textboxen erscheinen. Habe es bis jetzt nur geschafft, die erste Zahl in einer Textbox zu schreiben. Die zweite und dritte Zahl funktioniert nicht, ich vermute es liegt an die "befüllung" der Array.

    Erst mal mein Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim inputData As String
    3. Dim eingabe As String
    4. Dim sArray() As String
    5. Private Sub cmd_verbinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_verbinden.Click
    6. Try
    7. SerialPort1.PortName = txt_port.Text
    8. SerialPort1.BaudRate = txt_baud.Text
    9. SerialPort1.Open()
    10. cmd_verbinden.Enabled = False
    11. txt_port.BackColor = Color.Green
    12. txt_baud.BackColor = Color.Green
    13. Catch ex As Exception
    14. MsgBox("Verbindung konnte nicht hergestellt werden")
    15. End Try
    16. End Sub
    17. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    18. SerialPort1.Parity = IO.Ports.Parity.None
    19. SerialPort1.DataBits = 8
    20. SerialPort1.StopBits = IO.Ports.StopBits.One
    21. SerialPort1.Handshake = IO.Ports.Handshake.None
    22. SerialPort1.RtsEnable = True
    23. End Sub
    24. Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, _
    25. ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
    26. Handles SerialPort1.DataReceived
    27. inputData = SerialPort1.ReadLine
    28. End Sub
    29. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    30. sArray = Split(inputData, (":"))
    31. txt_x.Text = sArray(0)
    32. txt_y.Text = sArray(1)
    33. End Sub
    34. End Class

    Mein Fehler kommt bei

    VB.NET-Quellcode

    1. txt_y.Text = sArray(1)
    . Hier kommt die Fehlermeldung: Der Index war außerhalb des Arraysbereichs. Würde mich freuen, wenn mir jemand helfen könnte.

    Grüße

    //Edit: Musste leider so den Code einfügen. Irgendwie hat der sonst keine Absätze gemacht und der ganze Code war in 3 Zeilen untergebracht.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Devilstar“ ()

    Brauche den Timer, weil ich durchgehend Daten vom IC bekomme und diese dann immer wieder neu in die Textbox geladen werden soll.

    Hatte das " " noch im Code drin um was auszuprobieren (mein Fehler). Sollte natürlich ":" sein. Werde es sofort Edieren.

    Unterschied zwischen String und char ist klar.

    Grüße