Calcular el dígito de control de una cuenta bancaria

3465 vistas

Con esta sencilla función podemos calcular el código de control de una cuenta bancaria con el formato banco(4) + sucursal(4) + cuenta(10)



delphi
  1.   function CalculaDC(BancoOficina, Cuenta: string):integer;
  2.   const
  3.     Pesos: array[0..9] of integer=(6,3,7,9,10,5,8,4,2,1);
  4.   var
  5.     n: byte;
  6.     iTemp: integer;
  7.   begin
  8.     iTemp := 0;
  9.     for n := 0 to 7 do
  10.       iTemp := iTemp + StrToInt(Copy(BancoOficina, 8 - n, 1)) * Pesos[n];
  11.     Result := 11 - iTemp mod 11;
  12.     if (Result > 9) then Result := 1 - Result mod 10;
  13.     iTemp := 0;
  14.     for n := 0 to 9 do
  15.       iTemp := iTemp + StrToInt(Copy(Cuenta, 10 - n, 1)) * Pesos[n];
  16.     iTemp := 11 - iTemp mod 11;
  17.     if (iTemp > 9) then iTemp := 1 - iTemp mod 10;
  18.     Result := Result * 10 + iTemp;
  19.   end;



Un ejemplo de llamada podrÃa ser el siguiente:



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   Label1.Caption := IntToStr(CalculaDC('00851755','0000321764'));
  4. end;