Delphi: Validando CPF

Comentarios
Delphi: Validando CPF
Hoje em dia todas as pessoas físicas possuem CPF e por isso as vezes se torna necessário que seja validado se o mesmo numero informado por uma pessoa estão corretos, para isto tenho essa função que faz isso, ela retorna "true" e "false" (verdadeiro e falso respectivamente).

Criando a Função:

function doCPFValidation(CPF: string): Boolean;
var
  dig10, dig11: string;
  s, i, r, peso: integer;
begin
  if ((CPF = '00000000000') or (CPF = '11111111111') or
      (CPF = '22222222222') or (CPF = '33333333333') or
      (CPF = '44444444444') or (CPF = '55555555555') or
      (CPF = '66666666666') or (CPF = '77777777777') or
      (CPF = '88888888888') or (CPF = '99999999999') or
      (length(CPF) <> 11)) then
      begin
        doCPFValidation := false; exit;
      end;
  try { *-- Cálculo do 1o. Digito Verificador --* }
    s := 0; peso := 10;
    for i := 1 to 9 do
    begin
      s := s + (StrToInt(CPF[i]) * peso);
      peso := peso - 1;
    end;
    r := 11 - (s mod 11);
    if ((r = 10) or (r = 11)) then
      dig10 := '0'
    else
      str(r:1, dig10); { Cálculo do 2o. Digito Verificador }
    s := 0; peso := 11;
    for i := 1 to 10 do
    begin
      s := s + (StrToInt(CPF[i]) * peso); peso := peso - 1;
    end;
    r := 11 - (s mod 11);
    if ((r = 10) or (r = 11)) then
      dig11 := '0'
    else
      str(r:1, dig11); { Verifica se os digitos calculados conferem com os digitos informados. }
    if ((dig10 = CPF[10]) and (dig11 = CPF[11])) then
      doCPFValidation := true
    else
      doCPFValidation := false;
  except
    doCPFValidation := false
  end;

Como usar está função em seu código:

Pode ser usado no "on exit" de um "edit" ou no próprio botão de Salvar.

procedure TF_ClienteCadastro.edtCPFExit(Sender: TObject);
begin
  if edtCPF.Text <> ' . . - ' then
  begin
    if doCPFValidation(edtCPF.Text) = False then
    begin
      ShowMessage('CPF '+edtCPF.Text+' invalido !');
      edtCPF.SetFocus;
    end;
  end;
end;

Espero que tenha ajudado!

Postagens mais recentes Postagens mais antigas Página inicial
Tecnologia do Blogger.