LER DIFERENTES VALORES NUMERICOS DE UMA STRING
Boa noite pessoal,
Preciso de uma orientação em uma questão:
Estou utilizando um Arduino uno para enviar a leitura de dois potenciômetros via porta serial para a esse meu esquema.NET que utilizo para jogar essas leituras dentro do Flight Simulator.
Tive sucesso enviando a leitura de apenas 1 potenciômetro, porém estou perdido para tratar os dois valores enviados simultâneos.
As leituras são recebidas no esqueminha.NET da seguinte forma, ex: A510B320
onde 510 e 320 são os valores instantâneos enviados pela plaquinha Arduino.
Minha dúvida é a seguinte: Eu estou armazenando essa leitura ,A510B320, em uma [txt-color=#0000f0]String [/txt-color]. Existe alguma forma de ler apenas os valores numéricos 510 e 320 dessa linha e, em seguida, armazená-los em duas variáveis distintas? Caso sim, qual a melhor forma?
Preciso de uma orientação em uma questão:
Estou utilizando um Arduino uno para enviar a leitura de dois potenciômetros via porta serial para a esse meu esquema.NET que utilizo para jogar essas leituras dentro do Flight Simulator.
Tive sucesso enviando a leitura de apenas 1 potenciômetro, porém estou perdido para tratar os dois valores enviados simultâneos.
As leituras são recebidas no esqueminha.NET da seguinte forma, ex: A510B320
onde 510 e 320 são os valores instantâneos enviados pela plaquinha Arduino.
Minha dúvida é a seguinte: Eu estou armazenando essa leitura ,A510B320, em uma [txt-color=#0000f0]String [/txt-color]. Existe alguma forma de ler apenas os valores numéricos 510 e 320 dessa linha e, em seguida, armazená-los em duas variáveis distintas? Caso sim, qual a melhor forma?
Sugiro varrer a string, caracter por caracter, testando se ele é numérico ou não
Sub Main()
Dim palavra As String
[ô]
palavra = [Ô]A510B320[Ô]
[ô]
For Each x As Integer In SeparaNumeros(palavra)
Console.WriteLine(x)
Next
[ô]
Console.ReadKey()
[ô]
End Sub
Function SeparaNumeros(ByVal input As String) As List(Of Integer)
Dim temp As String
Dim ret As New List(Of Integer)
[ô]
temp = [Ô][Ô]
[ô]
For i As Integer = 0 To input.Length - 1
[ô]
If IsNumeric(input(i)) Then
temp = String.Concat(temp, input(i))
Else
If temp <> [Ô][Ô] Then
ret.Add(Int16.Parse(temp))
temp = [Ô][Ô]
End If
End If
Next
[ô]
If temp <> [Ô][Ô] Then
ret.Add(Int16.Parse(temp))
End If
[ô]
Return ret
End Function
Faça seu login para responder