Skip to content

CPF Métodos

Anderson Marques Ribeiro edited this page Nov 12, 2018 · 6 revisions

Índice

  1. CalcularDigito
  2. ValidarCPF
  3. Extrair

  1. class function CalcularDigito(ACPF: AnsiString; out ADigito: AnsiString): Boolean;
    ACPF: número do CPF sem os dois dígitos verificadores.
    ADigito: string com os dois dígitos, resultado da operação (caso o número passado seja válido).
    Resultado: true se o número do CPF for válido.
    Exceções: nenhuma.
    Calcula os dígitos verificadores para o número de CPF passado ao método, caso o número fornecido seja válido.
    Ex.:
var
  strDigital: AnsiString;
begin
  TCPF.CalcularDigito('123456789', strDigito);
  Writeln(strDigito); // Imprime 09.
end;

  1. class function ValidarCPF(ACPF: AnsiString): Boolean; static;
    ACPF: string com conteúdo para validação;
    Resultado: true o conteúdo é válido.
    Exceções: nenhuma.
    Verifica se a string passada ao método contém um número de CPF válido. Esta validação consistem em determinar se o conteúdo da string contém apenas dígitos válidos, se a quantidade deles está correta (11 ou 14) e se os dois últimos dígitos (dígito verificador) estão corretos.
    A string pode ou não conter dígitos de formatação, mas a inclusão destes dígitos não pode ser parcial.
    Ex.:
var
  blnValido: Boolean;
begin
  blnValido := TCPF.ValidarCPF('12345678900'); // Válido
  blnValido := TCPF.ValidarCPF('123.456.789-00'); // Válido
  blnValido := TCPF.ValidarCPF('123.456789-00'); // Inválido
end;

  1. class function Extrair(ATexto: AnsiString; out AResultado: TDadosExtraidosArray): Integer; static;
    ATexto: string cujo conteúdo deverá ser pesquisado;
    AResutado: armazena estruturas do tipo TDadosExtraidosRec, que armazenam dados de um CPF individual que foi encontrado;
    Resultado: número de CPFs que foram encontrados na string.
    Exceções: nenhuma.
    Realiza busca em uma string e obtém todos os número de CPF nele contidos, preenchendo AResultado com os dados obtidos.
    Ex.:
var
  adeResultado: TDadosExtraidosArray;
  i: Integer;
begin
  SetLength(adeResultado, 0);
  Writeln('Foram encontrados %.d CPFs', [TCPF.Extrair(ATexto, adeResultado)], ':');

  // Para cada CPF encontrado é obtido o número, sua posição dentro da string e se, apesar de o número em si ser
  // ---- válido, se seu dígito verificador está correto.

  for i := 0 to High(adeResultado) do
  with adeResultado[i] do
  begin
    Writeln('CPF: ', Dados, ' Posição: ', Posicao, ' ');
    if Valido then
      Writeln('Válido')
    else
      Writeln('Inválido');
  end;
end;