pontoNETpt
A comunidade PontoNetPT está direccionada a todos os programadores que trabalhem com a plataforma .NET.
Validando AGÊNCIA ou CONTA do banco BRADESCO

Hoje o négocio é na "bucha". :)
Essa função como o titulo já explica é para validar agência/conta do Bradesco.
Não tem mistério nenhum.
Como sempre qualquer dúvida ou problema é só mandar um "comment".
A próxima vai ser a validação do Banco do Brasil. ;)

Abraços,
Pedro

//-------------------------------------------------------------------
// Função para validar AGÊNCIA ou CONTA do banco brasileiro BRADESCO
// Deve ser informado o valor e depois o digito
// Ex: valida_Bradesco("12345", "5")
//-------------------------------------------------------------------
private bool valida_Bradesco(string valor, string digito) 
{
    
int soma 0;
    int 
dv;

    if
( digito.Equals("P") || digito.Equals("p") ) 
    {
        digito 
"0";
    
}

    valor 
valor.Trim();
    if
( valor.Length == || digito.Length == )
    {
        
return false;
    
}

    
forint valor.Lengthi >1i-- ) 
    {
        soma  
soma  + Convert.ToInt32(valor.Substring(i-1,1)) * Math.Abs( i - (valor.Length + 2) );
    
}
        
    
if( ( soma  % 11 == ) || ( soma  % 11 == ) )
    {
        dv 
0;
    
}
    
else 
    
{
        dv 
(11) - (soma  % 11);
    
}

    
if( digito.Equals( Convert.ToString( dv ) ) )
    {
        
return true;
    
}
    
else 
    
{
        
return false;
    
}            
}

Posted 29-8-2006 20:44 por Pedro Antonio Seixas Subutzki

Comments

Pedro Antonio Seixas Subutzki wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 30-8-2006 1:30
Poderia ser "char" sim Luis.
Eu não gosto muito de trabalhar com "char" principalmente quando tenho que fazer validações/casts.

Abraços
Pedro
Pedro Antonio Seixas Subutzki wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 30-8-2006 17:53
A função foi criada baseada na documentação do banco.
Eu realmente não a otimizei até pq não a uso. :(
Eu ia compartilhar apenas o algoritmo em si, mas resolvi "terminar" e compartilhar com a comunidade.
Quem for usar, obviamente deverá otimiza-la e criar exceptions para parametros inválidos e coisas do tipo.

Obrigado Jefferson e Paulo pelos comentários.
Abraços,
Pedro
Luis Abreu wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 29-6-2009 3:27
hum...digito...bom, n deveria ser char?
Anonymous wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 1-7-2009 2:20
Foi na base de engenharia reversa ou isso está documentado? :-)

P.S. poderia ser static.
Anonymous wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 1-7-2009 2:20
string em vez de char? Cada chamada a substring é uma criação de uma nova string, por exemplo.

O que acontece se se chamar com valida_Bradesco(null, null)? E com valida_Bradesco("", "")? E com valida_Bradesco("aaaaaa", "0000")?

Também me parece que (valor.Length + 2) tem sempre valor superior a i, pelo que, Math.Abs( i - (valor.Length + 2) ) é o mesmo que valor.Length - i + 2 (ou um j que começa em 2 e vai incrementando).

Parece-me faltar alguma robustez e performance.
Anonymous wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 2-7-2009 2:19
Foi na base de engenharia reversa ou isso está documentado? :-)

P.S. poderia ser static.
Anonymous wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 2-7-2009 2:19
string em vez de char? Cada chamada a substring é uma criação de uma nova string, por exemplo.

O que acontece se se chamar com valida_Bradesco(null, null)? E com valida_Bradesco("", "")? E com valida_Bradesco("aaaaaa", "0000")?

Também me parece que (valor.Length + 2) tem sempre valor superior a i, pelo que, Math.Abs( i - (valor.Length + 2) ) é o mesmo que valor.Length - i + 2 (ou um j que começa em 2 e vai incrementando).

Parece-me faltar alguma robustez e performance.
kra wrote re: Validando AGÊNCIA ou CONTA do banco BRADESCO
on 17-7-2009 19:52

ta qq eu faço agora com esse codigo ae lol pra valida a porra la Oo

Add a Comment

(requerido)  
(opcional)
(requerido)  
Remember Me?
If you can't read this number refresh your screen
Enter the numbers above:  
Powered by Community Server (Commercial Edition), by Telligent Systems