Buscar

Validar CPF

Código

function ValidaCPF(sCPF:String): Boolean;
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;

Publicidade

Vote na dica




Quantidade de votos: 1 voto
Aceitação: 20%


Detalhes da dica

Categoria: Forms
Adicionada dia: 26/02/10
Por: Walter Lucchesi Dias
Visualizada: 3102 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009