Olá amigos, sou iniciante em VB, mas conheço bem lógica e fiz uma rotina que verifica o digito verificador do codigo de barras DUN-14 em Clipper e gostaria de migrar para VB.
Como sempre preciso disto para ontem hehehe...
Abaixo segue o código em CLIPPER e logo abaixo coloquei em VB.
CLEAR
MCOD=0
DO WHILE MCOD#9
MCOD=0
@ 05,20 SAY [ Codigo...:] GET MCOD PICT [9999999999999]
READ
MDUN14=STR(MCOD,13)
SOMA=0
I=1
DO WHILE I<14
IF I%2=1
SOMA=SOMA+3*VAL(SUBSTR(MDUN14,I,1))
ELSE
SOMA=SOMA+1*VAL(SUBSTR(MDUN14,I,1))
ENDIF
I=I+1
ENDDO
DIGITO=(10-(SOMA%10))%10
@ 20,20 SAY [] + STR(DIGITO)
INKEY(999)
MVER=(MDUN14+STR(DIGITO,1))
@ 07,20 SAY [ Digito...:] + STR(DIGITO)
@ 09,20 SAY [ DUN14....:] + MVER
ENDDO
Agora em VB:
'--- calculo o digito verificador DUN-14
Val (Txt_Codigo)
Txt_Codigo = Str(Txt_Codigo, 13)
MDUN14 = CInt(Txt_Codigo)
SOMA = 0
i = 0
While i < 14
If (i = i Mod 2) = 1 Then
SOMA = SOMA + 3 * Val(substr(MDUN14, i, 1))
Else
SOMA = SOMA + 1 * Val(substr(MDUN14, i, 1))
End If
i = i + 1
Wend
DIGITO = (10 - (SOMA = SOMA Mod 10))
DIGITO = DIGITO Mod 10
DIGITO = Str(DIGITO)
MVER = (MDUN14 + Str(DIGITO, 1))
MsgBox (Str(DIGITO))
MsgBox (MVER)
Esta apresentando o seguinte erro:
" Wrong number of arguments or invalid property assignment "
Alguma conversão que estou fazendo errado...
Alguém poderia me ajudar nesta besteira... (risos)...
Favor enviar uma cópia de ajuda para e-mail abaixo:
Pergunta
Guest Jefferson
Olá amigos, sou iniciante em VB, mas conheço bem lógica e fiz uma rotina que verifica o digito verificador do codigo de barras DUN-14 em Clipper e gostaria de migrar para VB.
Como sempre preciso disto para ontem hehehe...
Abaixo segue o código em CLIPPER e logo abaixo coloquei em VB.
CLEAR
MCOD=0
DO WHILE MCOD#9
MCOD=0
@ 05,20 SAY [ Codigo...:] GET MCOD PICT [9999999999999]
READ
MDUN14=STR(MCOD,13)
SOMA=0
I=1
DO WHILE I<14
IF I%2=1
SOMA=SOMA+3*VAL(SUBSTR(MDUN14,I,1))
ELSE
SOMA=SOMA+1*VAL(SUBSTR(MDUN14,I,1))
ENDIF
I=I+1
ENDDO
DIGITO=(10-(SOMA%10))%10
@ 20,20 SAY [] + STR(DIGITO)
INKEY(999)
MVER=(MDUN14+STR(DIGITO,1))
@ 07,20 SAY [ Digito...:] + STR(DIGITO)
@ 09,20 SAY [ DUN14....:] + MVER
ENDDO
Agora em VB:
'--- calculo o digito verificador DUN-14
Val (Txt_Codigo)
Txt_Codigo = Str(Txt_Codigo, 13)
MDUN14 = CInt(Txt_Codigo)
SOMA = 0
i = 0
While i < 14
If (i = i Mod 2) = 1 Then
SOMA = SOMA + 3 * Val(substr(MDUN14, i, 1))
Else
SOMA = SOMA + 1 * Val(substr(MDUN14, i, 1))
End If
i = i + 1
Wend
DIGITO = (10 - (SOMA = SOMA Mod 10))
DIGITO = DIGITO Mod 10
DIGITO = Str(DIGITO)
MVER = (MDUN14 + Str(DIGITO, 1))
MsgBox (Str(DIGITO))
MsgBox (MVER)
Esta apresentando o seguinte erro:
" Wrong number of arguments or invalid property assignment "
Alguma conversão que estou fazendo errado...
Alguém poderia me ajudar nesta besteira... (risos)...
Favor enviar uma cópia de ajuda para e-mail abaixo:
oliveiraj@hhp.com.br
Atenciosamente;
Jefferson.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.