none
Dúvida de como implementar um funçao para separar temperaturas. Visual Basic RRS feed

  • Pergunta

  • Olá pessoal, estou com uma dúvida de como implementar uma parte de um projeto que estou realizando.

    É o seguinte, eu recebo um pacote de dados de 4 temperaturas distintas e eu preciso separar esse pacote e colocar as reapectivas temperaturas em Labels difetenres, por exemplo:

    Eu recebo o seguinte pacote tipo string pela RS232, "A31.2B27.0C55.5D60.0"

    O que eu preciso fazer é separar as temperaturas e coloca-las nos respectivos lugares
    Se "A" entao colocar a temperatura 31.2 na Label.Temp1

    Se "B" entao colocar a temperatura 27.0 na Label.Temp2

    Se "C" entao colocar a temperatura 55.5 na Label.Temp3

    Se "D" entao colocar a temperatura 60.0 naa Label.Temp4


    Eu parei nesse problema no projeto e nao estou conseguindo resolver, se alguem puder me ajudar eu agradeço

    Obrigado desde já!
    terça-feira, 20 de novembro de 2012 02:25

Todas as Respostas

  • Esse pacote seria uma coleção? Ou uma única string?

    Eu elaborei essa seguinte solução, usando a coleção List:

    Dim temperaturas As List(Of String)
    temperaturas = New List(Of String)
    
    temperaturas.Add("31.2")
    temperaturas.Add("27.0")
    temperaturas.Add("55.5")
    temperaturas.Add("60.0")
    
    Label1.Text = temperaturas.Item(0)
    Label2.Text = temperaturas.Item(1)
    Label3.Text = temperaturas.Item(2)
    Label4.Text = temperaturas.Item(3)

    No caso você receberia a coleção temperaturas e atribuiria aos labels. Como são poucas, poderia até ser feita com um array de string, ou melhor, um array de float (porque temperaturas não são alfanuméricos). Caso queira uma única string, você terá que elaborar um método que compare o conteúdo dessa string e trunque-as.


    terça-feira, 20 de novembro de 2012 11:14
  • Guilherme,

    Acredito que você possa estar com dúvida em como quebrar a string recebida pela porta serial, certo? Se for essa a sua questão, como no seu caso você tem um formato bem definido (pelo que entendi), sugiro que você trabalhe com Regular Expressions... Com elas você conseguiria especificar o formato da máscara e conseguiria extrair os valores de A, B, C e D da sua string... Veja se o link abaixo te ajuda em algo:

    http://stackoverflow.com/questions/906493/regex-named-capturing-groups-in-net


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    terça-feira, 20 de novembro de 2012 19:33
    Moderador