Function ValidaRenavam
Olá, há um tempo eu encontrei essa function de Validar renavam na internet:
Com a Replicate, meio que um complemento:
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.
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
Curtidas 0
Respostas
Mr. White
25/02/2014
Alguém?
GOSTEI 0
Ricardo
25/02/2014
Amigo descupe perguntar ao invés de ajudar, mas passei por aqui e resolvi dar uma olhada no seu post já que eu desenvolvo sistemas de trânsito.
Rapidamente em minha memória... essa função não esta incompleta...?
Rapidamente em minha memória... essa função não esta incompleta...?
GOSTEI 0
Mr. White
25/02/2014
A função não é minha, peeguei ela assim já.. não sei responder se está incompleta ou não, mas por dar esse erro, acredito que esteja mesmo...
GOSTEI 0