Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal!
Estou fazendo um programa que necessita de uma rotina para verificar a validade do cpf. Fiz um código que deveria estar funcionando corretamente, mas não sei o que fazer com os valores.
tá funcionando assim:
* Um edit recebe o número do cpf (string) sem pontos nem traços;
* Criei uma variável do tipo array para receber esse valor convertido para inteiro;
* O problema é que, quando esse valor é convertido para inteiro dentro do array, ele fica com o seguinte valor: 0,0,0,0,0,0,0,0,0,0,0.
* No final, mesmo que o CPF esteja correto, o ShowMessage mostra sempre "Cpf Inválido"
Gostaria de saber como posso fazer esse código para que ele funcione direito.
Obrigada a quem puder ajudar.
cpf[i]:=strtoint(edit1.Text);
//cálculo do primeiro dígito verificador
soma1:=(cpf[1]*10)+(cpf[2]*9)+(cpf[3]*8)+
(cpf[4]*7)+ (cpf[5]*6)+(cpf[6]*5)+
(cpf[7]*4)+ (cpf[8]*3)+(cpf[9]*2);
result1:=(soma1 div 11)*11;
dv1:=soma1-result1;
if (dv1=0) or (dv1=1) then
begin
digver01:=1;
end
else
digver01:=11-dv1;
edit2.Text:=inttostr(digver01);
//cálculo do segundo dígito verificador
soma2:=(cpf[1]*11)+(cpf[2]*10)+(cpf[3]*9)+
(cpf[4]*8)+ (cpf[5]*7)+(cpf[6]*6)+
(cpf[7]*5)+ (cpf[8]*4)+(cpf[9]*3)+
(digver01*2);
result2:=(soma2 div 11)*11;
dv2:=soma2-result2;
if (dv2=0) or (dv1=2) then
digver02:=1
else
digver02:=11-dv2;
//teste de igualdade entre os valores:
if (digver01=cpf[10]) and (digver02=cpf[11]) then
ShowMessage ('Cpf válido!!')
else
ShowMessage ('Cpf Inválido');Carregando comentários...