CNPJ amp; CPF

Delphi

05/02/2004

Alguém tem uma função que valida CNPJ e CGC, na formatação correta.
E se digitar junto no EXIT ele formatar e verificar da mesma maneira.

valeu


Smeagol

Smeagol

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

05/02/2004

function TForm.VerificaCpf(cpf: String): Boolean;
//Esta procedure é usada para verificar se um CPF existe.
//Se o resultado for false o cpf é invalido.Se nada foi digitato ou se o cpf for valido o resultado é true.
var   n1, n2, n3, n4, n5, n6, n7, n8, n9, d1, d2 : integer;
   digitado, calculado : string;
begin
             if not(cpf = ´´)then
                begin
                     if length(trim(cpf)) <> 11 then
                        begin
                             Result := False;
                        end
                     else
                         begin
                              n1 := StrToInt(cpf[1]);
                              n2 := StrToInt(cpf[2]);
                              n3 := StrToInt(cpf[3]);
                              n4 := StrToInt(cpf[4]);
                              n5 := StrToInt(cpf[5]);
                              n6 := StrToInt(cpf[6]);
                              n7 := StrToInt(cpf[7]);
                              n8 := StrToInt(cpf[8]);
                              n9 := StrToInt(cpf[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:=cpf[10]+ cpf[11];
                              if calculado <> digitado then
                                 begin
                                      result := FALSE;
                                 end
                              else result := TRUE;
                         end;
                end;

end;

-----------------------------------


function TForm.VerificaCnpj(cnpj: String): Boolean;
//Esta procedure é usada para verificar se um CGC existe.
//Se o resultado for false o cnpj é inválido. Se nada foi digitato ou se o cgc for valido o resultado é true
var n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, d1, d2 : integer;
   digitado, calculado : string;
begin
            if not (cnpj = ´´) then
                 begin
                      if length(trim(cnpj))<> 14 then
                         begin
                              Result := False;
                         end
                      else
                          begin
                               n1 := StrToInt(cnpj[1]);
                               n2 := StrToInt(cnpj[2]);
                               n3 := StrToInt(cnpj[3]);
                               n4 := StrToInt(cnpj[4]);
                               n5 := StrToInt(cnpj[5]);
                               n6 := StrToInt(cnpj[6]);
                               n7 := StrToInt(cnpj[7]);
                               n8 := StrToInt(cnpj[8]);
                               n9 := StrToInt(cnpj[9]);
                               n10 := StrToInt(cnpj[10]);
                               n11 := StrToInt(cnpj[11]);
                               n12 := StrToInt(cnpj[12]);

                               d1 := n12*2 + n11*3 + n10*4 + n9*5 + n8*6+ n7*7 + n6*8
                                     + n5*9 + n4*2 + n3*3 + n2*4 +n1*5;
                               d1 := 11 - (d1 mod 11);
                               if d1 >= 10 then d1 := 0;

                               d2 := d1*2 + n12*3 + n11*4 + n10*5 + n9*6 + n8*7+ n7*8
                                     + n6*9 + n5*2 + n4*3 + n3*4 + n2*5 +n1*6;
                               d2 := 11 - (d2 mod 11);
                               if d2 >= 10 then d2 := 0;

                               calculado := IntToStr(d1) + IntToStr(d2);
                               digitado := cnpj[13] + cnpj[14];
                               if calculado <> digitado then
                                    result := FALSE
                                  else
                                    result := TRUE;
                          end;
                 end;
end;



Antes de postar qualquer utilize o sistema de busca do Fórum. [b:9e48ed158e](PESQUISAR)[/b:9e48ed158e];
Tambem eh bom ler as regras de conduta, antes de postar qualquer coisa.

Lucas!


GOSTEI 0
POSTAR