Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;Carregando comentários...