Как мне изменить этот код, чтобы он принимал вход от последовательного порта COM, длина которого варьируется от 3 до 7 цифр. Это работает нормально, если я указываю длину подстроки, но я не могу получить ее как Dynami c и принять любую строку длины. Есть ли другой способ сделать это?
If (newCommand.Substring (0, 1) = "1") Тогда итоговое значение CREDIT от AVR
Label1.Text = Val(newCommand.Substring(1, 4))
работает с вводом 100,00, но происходит сбой до тех пор, пока строка ввода не станет 100000.00 если я не изменю его на ...
Label1.Text = Val (newCommand.Substring (1, 7)) Как мне заставить его выполнять обе входные строки динамически?
Function ParseData()
Dim pos1 As Integer
Dim pos2 As Integer
Dim length As Integer
Dim newCommand As String
Dim done As Boolean = False
Dim receivedData As String = ""
While (Not done)
pos1 = receivedData.IndexOf("<") + 1
pos2 = receivedData.IndexOf(">") + 1
If (pos2 < pos1) Then
receivedData = Mid(receivedData, pos2 + 1)
pos1 = receivedData.IndexOf("<") + 1
pos2 = receivedData.IndexOf(">") + 1
End If
If (pos1 = 0 Or pos2 = 0) Then
done = True
Else
length = pos2 - pos1 + 1
If (length > 0) Then
newCommand = Mid(receivedData, pos1 + 1, length - 1)
receivedData = Mid(receivedData, pos1 + 2, length - 1)
If (newCommand.Substring(0, 1) = "5") Then
My.Computer.Audio.Play(My.Resources.sound1, AudioPlayMode.WaitToComplete)
End If
If (newCommand.Substring(0, 1) = "1") Then
Label1.Text = Val(newCommand.Substring(1, 4))
End If
End If
End If
End While
End Function