Dicas Delphi – Validando o CPF

Function cpf(num: string): boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9: integer;
d1,d2: integer;
digitado, calculado: string;
begin
n1 := StrToInt(num[1]);
n2 := StrToInt(num[2]);
n3 := StrToInt(num[3]);
n4 := StrToInt(num[4]);
n5 := StrToInt(num[5]);
n6 := StrToInt(num[6]);
n7 := StrToInt(num[7]);
n8 := StrToInt(num[8]);
n9 := StrToInt(num[9]);
d1 := n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
d1 := 11-(d1 mod 11);
if d1> = 10 then
d1 := 0;
d2 := d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
d2 := 11-(d2 mod 11);
if d2> = 10 then
d2 := 0;
calculado:=inttostr(d1)+inttostr(d2);
digitado:=num[10]+num[11];
if calculado=digitado then
cpf := true
else
cpf:=false;
end;

Take care

Anúncios

3 respostas em “Dicas Delphi – Validando o CPF

  1. Opa e ai marcos, vamos melhorar essa função sua 🙂

    Function ValidarCPF(num: string): boolean;
    var
    n1,n2,n3,n4,n5,n6,n7,n8,n9: integer;
    d1,d2: integer;
    digitado, calculado: string;
    begin
    if length(trim(num)) = 0 then
    result := false
    else if Length(num) <> 11 then
    Result := false
    else if (num = ‘00000000000’) or (num = ‘11111111111’) or (num = ‘22222222222’)
    or (num = ‘33333333333’) or (num = ‘44444444444’) or (num = ‘55555555555’)
    or (num = ‘66666666666’) or (num = ‘77777777777’) or (num = ‘88888888888’)
    or (num = ‘99999999999’) then
    Result := false
    else
    begin
    n1 := StrToInt(num[1]);
    n2 := StrToInt(num[2]);
    n3 := StrToInt(num[3]);
    n4 := StrToInt(num[4]);
    n5 := StrToInt(num[5]);
    n6 := StrToInt(num[6]);
    n7 := StrToInt(num[7]);
    n8 := StrToInt(num[8]);
    n9 := StrToInt(num[9]);
    d1 := n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
    d1 := 11-(d1 mod 11);
    if d1 >= 10 then
    d1 := 0;
    d2 := d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
    d2 := 11-(d2 mod 11);
    if d2 >= 10 then
    d2 := 0;
    calculado := inttostr(d1)+inttostr(d2);
    digitado := num[10]+num[11];
    result := calculado = digitado;
    end;
    end;

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s