Aquí os pongo otra función similar hecha por mi:
antes hay que declarar por ejemplo en las variables globales este array:
Código:
pesos : array[1..10] of integer = (1,2,4,8,5,10,9,7,3,6);
Código:
function dcont(entidad,oficina,cuenta:String):String;
var
entofi,dig: string;
i,n,t,suma: integer;
r,r2: real;
begin
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);
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);
dcont := floattostr(r) + floattostr(r2);
end;