-
Notifications
You must be signed in to change notification settings - Fork 0
CNPJ Métodos
Anderson Marques Ribeiro edited this page Nov 18, 2018
·
2 revisions
-
class function CalcularDigito(ACNPJ: AnsiString; out ADigito: AnsiString): Boolean;
ACNPJ
: Número do CNPJ, com número da filial e sem o dígito verificador, com ou sem os dígitos de formatação.
ADigito
: armazena o dígito verificador calculado pelo método, caso a operação seja bem-sucedida.
Resultado: valor booleano se foi possível calcular o dígito (ACNPJ contém um CNPJ válido).
Exceções: nenhuma.
Calcula o dígito verificador para um CNPJ válido (número e filial).
O CNPJ fornecido pode ou não conter os dígitos de formatação, mas estes não podem ser parcial, senão o número é considerado inválido.
Ex.:
var
strDigito: AnsiString;
begin
if TCNPJ.CalcularDigito('123456780001', strDigito) then // O número fornecido é válido (número e filial)
Writeln(strDigito); // Imprime 95
if TCNPJ.CalcularDigito('12.345.678/0001', strDigito) then // O número fornecido é válido, com formatação
Writeln(strDigito); // Imprime 95
if TCNPJ.CalcularDigito('12.345678/0001', strDigito) then // O número fornecido não é válido
Writeln(strDigito); // Não vai ser impresso.
if TCNPJ.CalcularDigito('12345678001', strDigito) then // O número fornecido não é válido: 11 dígitos e não 12.
Writeln(strDigito); // Não vai ser impresso.
end;
-
class function ValidarCNPJ(ACNPJ: AnsiString): Boolean;
ACNPJ
: string contendo o número do CNPJ (completo, inclusive o dígito verificador).
Resultado: True se a string contém um CNPJ válido.
Exceções: nenhuma.
O método realiza testes para determinar se o número de CNPJ contido emACNPJ
é válido. Além de determinar se todos os dígitos são número, também verifica se o dígito (dois últimos dígitos), são válidos.
O número pode ou não conter os dígitos de formatação, contanto que completos. Se forem fornecidos dígitos de formatação parcialmente, o número é considerado inválido.
Ex.:
begin
if TCNPJ.ValidarCNPJ('12345678000195') then
Writeln('Válido'); // O texto é impresso.
if TCNPJ.ValidarCNPJ('12.345.678/0001-95') then
Writeln('Válido'); // O texto é impresso.
if TCNPJ.ValidarCNPJ('123456780001') then
Writeln('Válido'); // Não será impresso, pois há menos dígitos que os 14 que constituem o CNPJ.
if TCNPJ.ValidarCNPJ('12.345.6780001-95') then
Writeln('Válido'); // Não será impresso, pois os dígitos de formatação estão incompletos.
if TCNPJ.ValidarCNPJ('12345678X00195') then
Writeln('Válido'); // Não será impresso, pois há uma letra na string.
end;
-
class function Extrair(ATexto: AnsiString; out AResultado: TDadosExtraidosArray): Integer;
ATexto
: texto para pesquisa de CNPJs.
AResultado
: armazena lista com os CNPJs forem encontrados na pesquisa.
Resultado: inteiro com a quantidade de CNPJs encontrados emATexto
.
Exceções: nenhuma.
Ex.:
var
ade: TDadosExtradidosArray;
i: Integer;
begin
SetLength(ade, 0);
Writeln('Foram encontados ', TCNPJ.Extrair('Este é o CNPJ: 12.345.678/0001-95', ade), ' CNPJ(s).'); // Imprime: Foram encontrados 1 CNPJ(s).
for i := 0 to High(ade) do
with ade[i] do
Writeln(Dados); // Imprime 12.345.678/0001-95
end;