PDA

Ver la Versión Completa : calculo de digito de control de cuenta bancaria para españa


avmm2004
31-03-2015, 15:35:10
Hola, necesito calcular el digito de control de una cuenta corriente para españa.
He buscado en internet y e encontrado montones de ellas ..... con fallos.

Alguien tiene hecho algo y me deja la función ?

Gracias.

Casimiro Notevi
31-03-2015, 16:09:49
Abajo del todo tienes varios enlaces.

|
v



.

avmm2004
31-03-2015, 17:23:56
Gracias.
He cogido la rutina que facilito el miembro spu.

Tiene un fallo.
Hay que tener en cuenta lo que puse por comentario de añadido .... si no puede fallar.


function TForm5.rut_calc_dig(entidad,oficina,cuenta:String):String;
var
entofi,dig: string;
i,n,t,suma: integer;
r,r2: real;
const
pesos : array[1..10] of integer = (1,2,4,8,5,10,9,7,3,6);
begin
entidad := fzero(entidad, 4);
oficina := fzero(oficina, 4);
cuenta := fzero(cuenta, 10);

suma := 0;
entofi := entidad + oficina;
for i := 1 to 8 do
begin
dig := copy(entofi,i,1);
n := strtoint(dig);
t := pesos[i+2]* n;
suma := suma + t;
end;
r := 11 - (suma mod 11);
// Añadido
if r = 10 then
r := 1;
if r = 11 then
r := 0;
//--------

suma := 0;
for i := 1 to 10 do
begin
dig := copy(cuenta,i,1);
n := strtoint(dig);
t := pesos[i]* n;
suma := suma + t;
end;
r2 := 11 - (suma mod 11);
// Añadido
if r2 = 10 then
r2 := 1;
if r2 = 11 then
r2 := 0;
//--------
result := floattostr(r) + floattostr(r2);
end;