Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 126 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia.

Estou realizando um teste com o terminal de balança da Alfa Instrumentos 3104C , o cliente não está trabalhando com casas decimais na balança, está retornando erro, estava verificando os retornos e acontece o seguinte:

Com casas decimais retorna:

'**: 00,218 *: 00,000'#$D#$A

Sem casas decimais retorna:

'**: 00196 *: 00000'#$D#$A

Em Fontes/ACBrSerial/ACBrBALAlfa.pas

o erro acontecia na linha 109, onde tentava converter a string com o espaço no final '00196 ':

Result := (StrToInt(wResposta) / wDecimais);

 

na linha 96 possui o seguinte código  

wResposta := Copy(wResposta, 5, 6);

Pra ajustar troquei o código acima pelo seguinte:

if (Pos(DecimalSeparator, String(wResposta)) > 0)
or (Pos('.', String(wResposta)) > 0)
or (Pos(',', String(wResposta)) > 0) Then
  wResposta := Copy(wResposta, 5, 5)
else
  wResposta := Copy(wResposta, 5, 6);

 

Teriam alguma outra sugestão?

 

Postado

Seria a função OnlyNumber?

Aí só acrescentaria a função no segundo Result:

 if (Pos(DecimalSeparator, String(wResposta)) > 0) then
      Result := StrToFloat(wResposta)
    else
      Result := (StrToInt( OnlyNumber( wResposta ) ) / wDecimais);

  • Este tópico foi criado há 126 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...