Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Michele_Duarte

[Resolvido] Validação de Título de Eleitor

Recommended Posts

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

function ValidaTituloEleitor(NumTitulo: string): Boolean;

var

i, Total: integer;

Titulo: string;

RestoDiv, Verif1, Verif2: double;

begin

sTitulo := '';

for i :=1 to Length(NumTitulo) do

if (Copy(NumTitulo,i,1) >= '0') and (Copy(NumTitulo,i,1) <= '9') then

sTitulo := sTitulo + Copy(NumTitulo,i,1);

sTitulo := FormatFloat('0 0 0 0 0 0 0 0 0 0 0 0 0', StrtoFloat(sTitulo));

Total := StrToInt(sTitulo[1]) * 2 +

StrToInt(sTitulo[2]) * 9 +

StrToInt(sTitulo[3]) * 8 +

StrToInt(sTitulo[4]) * 7 +

StrToInt(sTitulo[5]) * 6 +

StrToInt(sTitulo[6]) * 5 +

StrToInt(sTitulo[7]) * 4 +

StrToInt(sTitulo[8]) * 3 +

StrToInt(sTitulo[9]) * 2;

RestoDiv := Total mod 11;

if (RestoDiv = 0) or (RestoDiv = 1) then

begin

if (Copy(sTitulo,10,2) = '01') or (Copy(sTitulo,10,2) = '02') then

begin

if RestoDiv = 0 then

Verif1 := 1

else

Verif1 := 0;

end

else

Verif1 := 0

end

else

Verif1 := 11 – RestoDiv;

Total := StrToInt(FloatToStr((StrToInt(sTitulo[10]) * 4) +

(StrToInt(sTitulo[11]) * 3) + (Verif1 * 2)));

RestoDiv := Total mod 11;

if (RestoDiv = 0) or (RestoDiv = 1) then

begin

if (Copy(sTitulo,10,2) = '01') or (Copy(sTitulo,10,2) = '02') then

begin

if RestoDiv = 0 then

Verif2 := 1

else

Verif2 := 0;

end

else

Verif2 := 0;

end

else

Verif2 := 11 – RestoDiv;

if (StrToInt(sTitulo[12]) > Verif1) or (StrToInt(sTitulo[13]) > Verif2) then

Result := False

else

Result := True;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.