USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Dígito
¨Hennyere¨
Pontos: 2843
SALVADOR
BA - BRASIL
Postada em 21/10/2006 04:39 hs         
Galera, tô precisando de uma função que retorne o dígito de uma conta corrente. Exemplo, se informar 22.000 como número da conta, a função retorna 0, pois o dígito de 22.000 é 0. 22.000-0
 
Grato
     
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 21/10/2006 23:42 hs            
Cada banco tem seu algoritmo para gerar o dígito verificador. E não sei se é fácil de conseguir o mesmo, pois se trata de item de segurança no sistema.
   
¨Hennyere¨
Pontos: 2843
SALVADOR
BA - BRASIL
ENUNCIADA !
Postada em 22/10/2006 01:58 hs         
Aí pessoal, acho que o cálculo de dígitos é valido para todos os bancos. Consegui coinstruir a função, porém só posso garantir que a validação é feita com contas que possuem 9 dígitos.
 
Public Function IsValidCC(sConta As String) As Boolean
    On Error GoTo errHandler:
    Dim x As Long, s As String
    Dim iResult As Integer, sTotal As Long
    For x = 1 To Len(sConta) - 1
        If IsNumeric(Mid(sConta, x, 1)) Then s = s & Mid(sConta, x, 1)
    Next
    If Len(s) > 11 Then Exit Function
    For x = 0 To Len(Mid(s, 1, 11)) - 1
        Select Case 9 - x
            Case 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
                iResult = iResult + (Mid(Mid(s, 1, 11), Len(Mid(s, 1, 11)) - x, 1) * (9 - x))
            Case Else
                iResult = iResult + (Mid(Mid(s, 1, 11), Len(Mid(s, 1, 11)) - x, 1) * (9))
        End Select
    Next
    sTotal = Int(iResult / 11)
    sTotal = Int(sTotal * 11)
    sTotal = iResult - sTotal
    If sTotal = 10 Then sTotal = 0
    If Right(sConta, 1) = sTotal Then IsValidCC = True
    Exit Function
errHandler:
    IsValidCC = False
End Function
 
Sabemos que o dígito pode ser letra ou número, por exemplo o Bradesco, pode ser P,0,,1,2,3,4,5,6,7,8,9 ou o Banco do Brasil pode ser X,0,1,2,3,4,5,6,7,8,9.
 
O sistema efetua a validação considerando que P ou X = 0, porq na verdade essa substituição pode ser feita.
 
Para melhorar essa função, conto com a ajuda de vcs!
TÓPICO EDITADO
 
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 22/10/2006 09:39 hs            
A tua função está correta, o código, mas como eu disse, nem todos os bancos seguem o mesmo padrão.

Testei com 2 contas do BB e deu certo, mas com conta da CEF e do BRB não validou.

Você está no caminho certo, mas é bom pesquisar mais um pouco sobre outros bancos.
   
¨Hennyere¨
Pontos: 2843
SALVADOR
BA - BRASIL
ENUNCIADA !
Postada em 22/10/2006 12:55 hs         
Vou pesquisar um pouco sobre isso... Vlw!
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página