Fórum Function ValidaRenavam #471225
25/02/2014
0
function ValidaRenavam(Num: String) : Boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9, i, d1, d2: Integer;
digitado, calculado: String;
Retorno: Boolean;
begin
try
if ( Length( Num ) <> 9 ) then Result := False
else
begin
Retorno := True;
for i := 0 to 8 do
if ( Num = Replicate( IntToStr(i), 11 ) ) then Retorno := False;
if ( Retorno ) then
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:=n8*2+n7*3+n6*4+n5*5+n4*6+n3*7+n2*8+n1*9;
d1:=11-(d1 mod 11);
calculado:=inttostr(d1);
digitado:=num[9];
if calculado=digitado then Result := True
else
Result := False;
end
else
Result := False;
end;
except
Result := False;
end;
end;Com a Replicate, meio que um complemento:
function Replicate( Caracter:String; Quant:Integer ): String; var I : Integer; begin Result := ''; for I := 1 to Quant do Result := Result + Caracter; end;
Até agora estava dando certo, mas hoje o cliente tentou validar um renavam e deu que o mesmo era inválido. Porém, pesquisei esse renavam no site do denatran e foi encontrado... o que significa que a função não é 100% efetiva. Alguém sabe como tratar isso?
O renavam que o cliente tentou cadastrar é: 715602560.
Obrigado.
Mr. White
Curtir tópico
+ 0Posts
28/02/2014
Mr. White
Gostei + 0
28/02/2014
Ricardo
Rapidamente em minha memória... essa função não esta incompleta...?
Gostei + 0
28/02/2014
Mr. White
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)