Buscar

Validação de título de eleitor

Código

Function TNTWBasEdt.ValidTIT(Valor: String): Boolean;
{função para validação do titulo de eleitor}
var i, j, iPriDig, iSegDig: Integer;
begin
  Result:=false;//se o codigo passado for vazio ou nulo cai fora
  if Length(Valor) = 0 then
    Exit;

  Valor:=AlinhaTX(Valor, 'd', 13, '0');//alinha e preenche com zeros as 13 posicoes necessarias
  j:=StrToInt(Copy(Valor, 9, 2));      //essa questao das 2 posicoes falta confirmar com o TSE

//primeiro numero do digito
  iPriDig:=0;
  for i:=1 to 9 do//executa as somatorias e multiplicacoes
    iPriDig:=iPriDig + StrToInt(Valor[i]) * (10 - (i - 1));
  iPriDig:=iPriDig mod 11;//resolve o modulo 11
  if iPriDig > 1 then     //calcula o digito especifico
    iPriDig:=11 - iPriDig
  else
    begin
      if j <= 2 then
        iPriDig:=1 - iPriDig
      else
        iPriDig:=0;
    end;
//segundo numero do digito
  iSegDig:=iPriDig * 2;//dobra o primeiro digito
  for i:=10 to 11 do   //e executa as somatorias
    iSegDig:=iSegDig + StrToInt(Valor[i]) * (13 - (i - 1));
  iSegDig:=iSegDig mod 11;
  if iSegDig > 1 then
    iSegDig:=11 - iSegDig
  else
    begin
      if j <= 2 then
        iSegDig:=1 - iSegDig
      else
        iSegDig:=0;
    end;
//valida se o digito é verdadeiro
  Result:=(IntToStr(iPriDig) + IntToStr(iSegDig)) = Copy(Valor, 12, 2);
end;
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 22/07/03
Por: Uildenei Geverson Junior Uliana
Visualizada: 4023 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009