DIGITO VERIFICADO
Gostaria de saber como faço para que no momento que sair de um edit o sistema verificasse o digito verificador
exe 12-227-056-8 e em outro formulario quando digito um numero igual a esse e colosse a quantidade ele preenchia as o restante com o digito
Grato
Diogenes
Diogenes Dourado
Curtidas 0
Respostas
Wesley Yamazack
11/12/2008
Diogenes,
Qual é o algoritmo que você esta usando para gerar o digito verificador.
GOSTEI 0
Wesley Yamazack
11/12/2008
Diogenes,
Continuo no aguardo sobre o seu algoritmo do digito verificador.
Continuo no aguardo sobre o seu algoritmo do digito verificador.
GOSTEI 0
Diogenes Dourado
11/12/2008
o Algoritmo que tenho foi montado em Visual Basic, gostaria de saber como faço para montar um similar ou igual para Delphi.
Segue abaixo os dois algoritmo dos codigo verificadores
Verifica DV
Function VerifDv(Num_Med As String, Campo As TextBox) As Integer
Dim Tot, DV As Integer
Dim Quo As Integer
Dim Resto, I, Prod, intParte, nDV, nSubtr As Integer
Dim strNum, strParte As String strNum = Mid(Num_Med, 1, 8)
nDV = Right(Num_Med, 1)
DV = 0 If Str(Mid(Num_Med, 1, 2)) = 0 Then Caso inicie por 00 o DV deve ser sempre 0
GoTo Testa
End If Tot = 0
Resto = 0
Quo = 0
nSubtr = 9 For I = 2 To 9
intParte = Val(Mid(strNum, (I - 1), 1))
Prod = intParte * nSubtr
Tot = Tot + Prod
nSubtr = nSubtr - 1
Next I Quo = Int(Tot / 11)
Resto = Tot - (Quo * 11)
DV = 11 - Resto
If DV = 10 Or DV = 11 Then
DV = 0
End If Testa: If DV <> nDV Then
MsgBox "NÚMERO OU DV ÍNVÁLIDO.@ VERIFIQUE... @ ", 0, "E R R O"
Campo.SetFocus
End If Fim_Sub: End Function Verifica DV Function VerifDv(Num_Med As String, Campo As TextBox) As Integer Dim Tot, DV As Integer
Dim Quo As Integer
Dim Resto, I, Prod, intParte, nDV, nSubtr As Integer
Dim strNum, strParte As String strNum = Mid(Num_Med, 1, 8)
nDV = Right(Num_Med, 1)
DV = 0 If Str(Mid(Num_Med, 1, 2)) = 0 Then Caso inicie por 00 o DV deve ser sempre 0
GoTo Testa
End If Tot = 0
Resto = 0
Quo = 0
nSubtr = 9 For I = 2 To 9
intParte = Val(Mid(strNum, (I - 1), 1))
Prod = intParte * nSubtr
Tot = Tot + Prod
nSubtr = nSubtr - 1
Next I Quo = Int(Tot / 11)
Resto = Tot - (Quo * 11)
DV = 11 - Resto
If DV = 10 Or DV = 11 Then
DV = 0
End If Testa: If DV <> nDV Then
MsgBox "NÚMERO OU DV ÍNVÁLIDO.@ VERIFIQUE... @ ", 0, "E R R O"
Campo.SetFocus
End If Fim_Sub: End Function Pois os mesmos são usados em um banco de dados em ACCESS Grato Diogenes
Dim Quo As Integer
Dim Resto, I, Prod, intParte, nDV, nSubtr As Integer
Dim strNum, strParte As String strNum = Mid(Num_Med, 1, 8)
nDV = Right(Num_Med, 1)
DV = 0 If Str(Mid(Num_Med, 1, 2)) = 0 Then Caso inicie por 00 o DV deve ser sempre 0
GoTo Testa
End If Tot = 0
Resto = 0
Quo = 0
nSubtr = 9 For I = 2 To 9
intParte = Val(Mid(strNum, (I - 1), 1))
Prod = intParte * nSubtr
Tot = Tot + Prod
nSubtr = nSubtr - 1
Next I Quo = Int(Tot / 11)
Resto = Tot - (Quo * 11)
DV = 11 - Resto
If DV = 10 Or DV = 11 Then
DV = 0
End If Testa: If DV <> nDV Then
MsgBox "NÚMERO OU DV ÍNVÁLIDO.@ VERIFIQUE... @ ", 0, "E R R O"
Campo.SetFocus
End If Fim_Sub: End Function Verifica DV Function VerifDv(Num_Med As String, Campo As TextBox) As Integer Dim Tot, DV As Integer
Dim Quo As Integer
Dim Resto, I, Prod, intParte, nDV, nSubtr As Integer
Dim strNum, strParte As String strNum = Mid(Num_Med, 1, 8)
nDV = Right(Num_Med, 1)
DV = 0 If Str(Mid(Num_Med, 1, 2)) = 0 Then Caso inicie por 00 o DV deve ser sempre 0
GoTo Testa
End If Tot = 0
Resto = 0
Quo = 0
nSubtr = 9 For I = 2 To 9
intParte = Val(Mid(strNum, (I - 1), 1))
Prod = intParte * nSubtr
Tot = Tot + Prod
nSubtr = nSubtr - 1
Next I Quo = Int(Tot / 11)
Resto = Tot - (Quo * 11)
DV = 11 - Resto
If DV = 10 Or DV = 11 Then
DV = 0
End If Testa: If DV <> nDV Then
MsgBox "NÚMERO OU DV ÍNVÁLIDO.@ VERIFIQUE... @ ", 0, "E R R O"
Campo.SetFocus
End If Fim_Sub: End Function Pois os mesmos são usados em um banco de dados em ACCESS Grato Diogenes
GOSTEI 0
Wesley Yamazack
11/12/2008
Diogenes,
Estaremos analisando o código e convertendo o mesmo para delphi. Logo enviaremos a resposta
Estaremos analisando o código e convertendo o mesmo para delphi. Logo enviaremos a resposta
GOSTEI 0
Diogenes Dourado
11/12/2008
ola
Obsevando o que te enviei verifiquei que mandei dois algoritimo repitido segue abixo o correto
verifica DV pois quando digitamos os numeros o sistema verifica se esta correto
Verifica DV
Function VerifDv(Num_Med As String, Campo As TextBox) As Integer
Dim Tot, DV As Integer
Dim Quo As Integer
Dim Resto, I, Prod, intParte, nDV, nSubtr As Integer
Dim strNum, strParte As String strNum = Mid(Num_Med, 1, 8)
nDV = Right(Num_Med, 1)
DV = 0 If Str(Mid(Num_Med, 1, 2)) = 0 Then Caso inicie por 00 o DV deve ser sempre 0
GoTo Testa
End If Tot = 0
Resto = 0
Quo = 0
nSubtr = 9 For I = 2 To 9
intParte = Val(Mid(strNum, (I - 1), 1))
Prod = intParte * nSubtr
Tot = Tot + Prod
nSubtr = nSubtr - 1
Next I Quo = Int(Tot / 11)
Resto = Tot - (Quo * 11)
DV = 11 - Resto
If DV = 10 Or DV = 11 Then
DV = 0
End If Testa: If DV <> nDV Then
MsgBox "NÚMERO OU DV ÍNVÁLIDO.@ VERIFIQUE... @ ", 0, "E R R O"
Campo.SetFocus
End If Fim_Sub: End Function o proximo é quando digitamos uma quantidade grande por exemplo digitamos o primeiro e em outro edit colomas a quantidade e o sistema preenche a quantidade informada exemplo 12-227-056-8 com a quantidade de 100 pcs o sistema coloca a sequencio 12-227-057 em diante com o digita verificador Grato Diogenes
Dim Quo As Integer
Dim Resto, I, Prod, intParte, nDV, nSubtr As Integer
Dim strNum, strParte As String strNum = Mid(Num_Med, 1, 8)
nDV = Right(Num_Med, 1)
DV = 0 If Str(Mid(Num_Med, 1, 2)) = 0 Then Caso inicie por 00 o DV deve ser sempre 0
GoTo Testa
End If Tot = 0
Resto = 0
Quo = 0
nSubtr = 9 For I = 2 To 9
intParte = Val(Mid(strNum, (I - 1), 1))
Prod = intParte * nSubtr
Tot = Tot + Prod
nSubtr = nSubtr - 1
Next I Quo = Int(Tot / 11)
Resto = Tot - (Quo * 11)
DV = 11 - Resto
If DV = 10 Or DV = 11 Then
DV = 0
End If Testa: If DV <> nDV Then
MsgBox "NÚMERO OU DV ÍNVÁLIDO.@ VERIFIQUE... @ ", 0, "E R R O"
Campo.SetFocus
End If Fim_Sub: End Function o proximo é quando digitamos uma quantidade grande por exemplo digitamos o primeiro e em outro edit colomas a quantidade e o sistema preenche a quantidade informada exemplo 12-227-056-8 com a quantidade de 100 pcs o sistema coloca a sequencio 12-227-057 em diante com o digita verificador Grato Diogenes
GOSTEI 0
Wesley Yamazack
11/12/2008
Foi convertido o algortimo para o delphi, de uma olhada e veja se é isso.
http://www.4shared.com/file/76076210/b53bd8b5/algortimo.html
Att,
Wesley Yamazack
http://www.4shared.com/file/76076210/b53bd8b5/algortimo.html
Att,
Wesley Yamazack
GOSTEI 0
Diogenes Dourado
11/12/2008
Bom dia
Gostaria de agradeçer pela resolução do meu problema, pois a resposta me ajudou e em muito
O alogritimo supriu a minha necesidade
Desde ja agradeço, e muito obrigado pela atenção
Grato
Diogenes
GOSTEI 0
Wesley Yamazack
11/12/2008
Bom dia,
Que bom que conseguimos resolver seu problema. Espero poder ajudar em um próximo chamado.
Estamos fechando o chamado.
Att,
Wesley Yamazack
Que bom que conseguimos resolver seu problema. Espero poder ajudar em um próximo chamado.
Estamos fechando o chamado.
Att,
Wesley Yamazack
GOSTEI 0