terça-feira, 2 de setembro de 2008

Validar CPF

//O CPF deve ser digitado no formato '000.000.000-00'

Function
CPF(num: string): boolean;

var
n1,n2,n3,n5,n6,n7,n9,n10,n11: integer;
d1,d2: integer;
digitado, calculado: string;
begin
n1:=StrToInt(num[1]);
n2:=StrToInt(num[2]);
n3:=StrToInt(num[3]);
n5:=StrToInt(num[5]);
n6:=StrToInt(num[6]);
n7:=StrToInt(num[7]);
n9:=StrToInt(num[9]);
n10:=StrToInt(num[10]);
n11:=StrToInt(num[11]);
d1:=n11*2+n10*3+n9*4+n7*5+n6*6+n5*7+n3*8+n2*9+n1*10;
d1:=11-(d1 mod 11);
if d1>=10 then
d1:=0;
d2:=d1*2+n11*3+n10*4+n9*5+n7*6+n6*7+n5*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[13]+num[14];
if (calculado=digitado) then
cpf:=true
else
cpf:=false;
end;


//Como usar

procedure TForm1.Button1Click(Sender: TObject);
begin
If NOT cpf(edit1.text) then
Begin
messagebox(Application.Handle, Pchar ('O CPF ' +edit1.Text+ 'não é válido, deseja continuar assim mesmo?'), 'Atenção', MB_OK+MB_ICONWARNING+MB_DEFBUTTON1);
edit1.SetFocus;
end;
end;

Nenhum comentário: