1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

CSharp ajuda!!!

Discussão em 'Programação' iniciada por hjmb, 27 de Agosto de 2007. (Respostas: 5; Visualizações: 1198)

  1. Olá a todos tou a fazer um programa em CSharp que faz a leitura dos dados enviados por uma Pic pela porta seial. e com esses valores desenho um grafico, mas ao converter de stringa para inteiro de vez enquando da erro porque recebe um valor que é um quadrado ou varios pontos de interrogaçao, se alguem ja teve ou sabe como posso resolver este probela???

    Um muito obrigado uma optima semana para todos
     
  2. ManuelFelicio

    ManuelFelicio Power Member

    Não sei se percebi bem o teu problema... mas se nao consegues converter de string para inteiro usa os seguintes métodos:

    int Int32.Parse(String s)
    ou
    bool Int32.TryParse(String s, out int result)
     

  3. Boa tarde Manuel Felicio o meu problema esta que ao converter da erro porque na string q vou converter contem um caracter que é um quadrado ou um ponto de interrogaçao , caracterews esses qua nao são possiveis de serem convertidos em inteiros, a conversao da stringa funciona bem, mas quando aparece e esse tal caracter d
    a erro, não faço a minima ideia de onde aparece esse simbolo o quadrado e o ponto de interrogação, a mim parece-me q dese ser lixo q ele recebe na porta serial, nao não faço a minima ideia de como eleminar esses simbolos, um muito obrigado e boa semana.
     
  4. malato

    malato Power Member

    faz um parse à string. Vai caracter a caracter do inicio para o fim enquanto o caracter actual for um inteiro...
    mete esse teste dentro de um try catch pra não apanhares com uma excepção qd vier de lá o tal caracter estranho. Qt a código não me apetece escrever... mas é fácil.

    nota: De referir que caso o caracter actual seja um inteiro deves concatena-lo com outra string temporária. Essa string terá no final do ciclo o inteiro que tu procuras. Depois basta usar o int.Parse...

    Bom trabalho
     
    Última edição: 27 de Agosto de 2007
  5. CoolMaster

    CoolMaster Power Member

    @ malato

    Claro que podes sempre fazer o calculo char a char e somar ao inteiro.
    Por exemplo
    val = val * 10 + char_corrente - '0'

    De notar que não sei C#, por isso não sei se o '0' é válido em C#, em C o '0' tem o ascii correspondente que é o 48.
     
  6. Um muito obrigado a todos principalmente ao Malato, já andava a dois dias a tentar resolver o problema, ja consegui resolver usei o try and catch, um muito obrigado.
     

Partilhar esta Página