Fórum CNPJ amp; CPF #211821
05/02/2004
0
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
E se digitar junto no EXIT ele formatar e verificar da mesma maneira.
valeu
Smeagol
Curtir tópico
+ 0
Responder
Posts
05/02/2004
Lucas Silva
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!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)