Código
var
vDig: Array[1..9] of integer;
i, vSoma, DF6, vResto, vDivisor, vPriDig, vSegDig: Integer;
begin
if vValidarCPF = 0 then
Begin
Result:=true;
exit;
End;
if Length(sCPF)=11 then begin
for i:=1 to 9 do begin
vDig[i]:=StrToInt(Copy(sCpf,i,1));
end;
vSoma:=(10*vDig[1]) + (9*vDig[2]) + (8*vDig[3]) + (7*vDig[4]) +
(6*vDig[5]) + (5*vDig[6]) + (4*vDig[7]) + (3*vDig[8]) + (2*vDig[9]);
vDivisor:=vSoma div 11;
DF6:=vDivisor*11;
vResto:=vSoma-DF6;
if (vResto=0) or (vResto=1) then
vPriDig:=0
else
vPriDig:=11-vResto;
// Calculo do segundo digito
vSoma:=(11*vDig[1]) + (10*vDig[2]) + (9*vDig[3]) + (8*vDig[4]) +
(7*vDig[5]) + (6*vDig[6]) + (5*vDig[7]) + (4*vDig[8]) + (3*vDig[9])+
(2*vPriDig);
vDivisor:=vSoma div 11;
DF6:=vDivisor*11;
vResto:=vSoma-DF6;
if (vResto=0) or (vResto=1) then
vSegDig:=0
else
vSegDig:=11-vResto;
if (IntToStr(vPriDig)=Copy(SCpf,10,1)) and
(IntToStr(vSegDig)=Copy(SCpf,11,1)) then
Result:=True
else
Result:=False;
end else
Result:=False;
end;
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009