Para quem esta desenvolvendo softwares para emissão de boletos do Banco do Brasil e quer uma mãozinha no calculo do digito verificador do campo NOSSO NÚMERO de 11 posições, esta ai uma função que criei em Delphi que esta rodando direitinho:
Comando: CalculaDV11bb(<nosso numero>)
Como parâmetro você deve passar o NossoNumero e a função vai retornar o digito verificador, exemplo:
DigitoVerificador.text := CalculaDV11BB(NossoNumero.text);
Função:
function TForm1.CalculaDV11BB(cCONTA:string):string;
{cálculo do dígito verificador do nosso número de 11 posições
utilizado para gerar os boletos do banco do Brasil
Criado por Dane Morais – danegd@gmail.com}
var
cMultiplicador : string;
nResult2 : integer;
nParcial : integer;
nX : integer;
begin
cMultiplicador := ‘78923456789’;
nX := 0;
nParcial := 0;
nResult2 := 0;
for nX := 1 to 11 do
nParcial := nParcial+ (StrToInt(copy(cConta,nX,1)) * StrToInt(copy(cMultiplicador,nX,1))) ; nResult2 := (nParcial mod 11);
if nResult2 < 10 then
result := IntToStr(nResult2);
if nresult2 = 10 then
result := ‘X’;
if nResult2 = 0 then
result := ‘0’;
end ;
Parabéns, funciona corretamente.