Re: RES: [delphi-br] Validação CPF e CNPJ

2004-12-03 Por tôpico \[ Mutuka \]

aff q grandes hehehhe (não importa funcionando
né!)
mesmo assim segue minhas funcoes de CPF e CNPJ:

//ela aceita semente CPF e CNPJ errados iguais a
00... caso tenha q cadastrar alguem e nao tem
o documento em maos

Function ValidaCPF(CPF:String) :Boolean;
Const
  TAM_CPF = 11;
Var
  i, Aux :Integer;
  Str :String;
Begin

  Result := True;

  Aux := 0;
  For i := 1 To Length(CPF) Do
If CPF[i] = ' ' Then Aux := Aux + 1;

  If (Aux  0) And (Aux  11) Then
Begin
Result := False;
Exit
End Else
If CPF = '   .   .   -  ' Then Exit;

  For i := 1 To Length(Trim(CPF)) Do
If (CPF[i] In ['0'..'9']) Then Str :=
Str+CPF[i];
  CPF :=
StringOfChar('0',TAM_CPF-Length(Str))+Str;

  Aux := 0;
  For i := 2 To 10 Do Aux :=
Aux+(StrToInt(Copy(CPF,11-i,1))*i) ;
  Aux := Aux*10;
  Aux := (Aux Mod 11);
  If Aux = 10 Then Aux := 0;

  If StrToInt(Copy(CPF,10,1)) = Aux Then
  Begin
Aux := Aux*2;
For i := 3 To 11 Do Aux :=
Aux+(StrToInt(Copy(CPF,12-i,1))*i);
Aux := Aux*10;
Aux := (Aux Mod 11);
If Aux = 10 Then Aux := 0;
Result := (StrToInt(Copy(CPF,11,1)) = Aux);
  End Else Result := False;

  For i := 2 To Length(CPF) Do
If CPF[i]  CPF[i-1] Then Break;

  If (CPF[1]  '0') And (i = 12) Then Result :=
False;

End;

Function ValidaCGC(CGC :String) :Boolean;
Const
  TAM_CGC = 14;
Var
  i, Aux :Integer;
  Str :String;

Begin
  Result := True;

  Aux := 0;
  For i := 1 To Length(CGC) Do
If CGC[i] = ' ' Then Aux := Aux + 1;
  If (Aux  0) And (Aux  14) Then
Begin
Result := False;
Exit
End Else
If CGC = '  .   .   /   -  ' Then Exit;

  For i := 1 To Length(Trim(CGC)) Do
If (CGC[i] In ['0'..'9']) Then Str :=
Str+CGC[i];
  CGC :=
StringOfChar('0',TAM_CGC-Length(Str))+Str;

  Aux := 0;
  For i := 2 To 9 Do Aux := Aux +
((StrToInt(Copy(CGC,14-i,1)))*i);
  For i := 2 To 5 Do Aux := Aux +
((StrToInt(Copy(CGC, 6-i,1)))*i);
  Aux := Aux*10;
  Aux := (Aux Mod 11);
  If Aux = 10 Then Aux := 0;

  If StrToInt(Copy(CGC,13,1)) = Aux Then
  Begin
Aux := Aux*2;
For i := 3 To 9 Do Aux := Aux +
(StrToInt(Copy(CGC,15-i,1))*i);
For i := 2 To 6 Do Aux := Aux +
(StrToInt(Copy(CGC, 7-i,1))*i);
Aux := Aux*10;
Aux := (Aux Mod 11);
If Aux = 10 Then Aux := 0;
Result := (StrToInt(Copy(CGC,14,1)) = Aux);
  End Else Result := False;

  For i := 2 To Length(CGC) Do
If CGC[i]  CGC[i-1] Then Break;

  If (CGC[1]  '0') And (i = 15) Then Result :=
False;

End;









 --- Eduardo Silva ® [EMAIL PROTECTED]
escreveu: 

-
function ValidaCPF(num:string): Boolean;
var
   n1,n2,n3,n4,n5,n6,n7,n8,n9 : integer;
   d1,d2  : integer;
   digitado, calculado: String;
begin
   if num = '000' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '111' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '222' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '333' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '444' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '555' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '666' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '777' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '888' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '999' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF
inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   begin
  n1 := StrToInt(num[1]);
  n2 := StrToInt(num[2]);
  n3 := StrToInt(num[3]);
  n4 := StrToInt(num[4]);
  n5 := StrToInt(num[5]);
  n6 := StrToInt(num[6]);
  n7 := StrToInt(num[7]);
  n8 := StrToInt(num[8]);
  n9 := StrToInt(num[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 

RES: [delphi-br] Validação CPF e CNPJ

2004-12-01 Por tôpico Eduardo Silva ®

function ValidaCPF(num:string): Boolean;
var
   n1,n2,n3,n4,n5,n6,n7,n8,n9 : integer;
   d1,d2  : integer;
   digitado, calculado: String;
begin
   if num = '000' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '111' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '222' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '333' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '444' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '555' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '666' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '777' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '888' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   if num = '999' then
   begin
  ValidaCPF := False;
  messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
   end
   else
   begin
  n1 := StrToInt(num[1]);
  n2 := StrToInt(num[2]);
  n3 := StrToInt(num[3]);
  n4 := StrToInt(num[4]);
  n5 := StrToInt(num[5]);
  n6 := StrToInt(num[6]);
  n7 := StrToInt(num[7]);
  n8 := StrToInt(num[8]);
  n9 := StrToInt(num[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  := num[10] + num[11];
  if calculado = digitado then
 ValidaCPF := True
  else
  begin
 ValidaCPF := False;
 messagebox(application.handle,'CPF inválido!','Erro', MB_OK or
MB_ICONERROR);
  end;
   end;
end;

  -Mensagem original-
  De: Valcir José Tasquim [mailto:[EMAIL PROTECTED]
  Enviada em: quarta-feira, 1 de dezembro de 2004 13:18
  Para: [EMAIL PROTECTED]
  Assunto: [delphi-br] Validação CPF e CNPJ


  Boa Tarde

  Será que alguem teria a programação para validação de CPF e CNPJ.

  Grato

  Tasquim


  [As partes desta mensagem que não continham texto foram removidas]



  --
   FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:

São Paulo Rio de Janeiro Curitiba Porto Alegre Belo
Horizonte Brasília





--
  Links do Yahoo! Grupos

a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.789 / Virus Database: 534 - Release Date: 07/11/2004


[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html