Bom dia,
Alguém tem alguma função para validar o número do tÃtulo de eleitor ?
Como se faz no CPF?
Obg. Abs.

Moderador: Moderadores
//Validar TÃtulo de Eleitor
public static String ValidarTitulo(String strTitulo)
{
int dig1; int dig2; int dig3; int dig4; int dig5; int dig6;
int dig7; int dig8; int dig9; int dig10; int dig11;
int dig12; int dv1; int dv2; int qDig;
if (strTitulo.length() == 0) //Validação do preenchimento
{
return "Número não informado!"; //Caso não seja informado o TÃtulo
}
else
{
if (strTitulo.length() < 12)
{
//Completar 12 dÃgitos
strTitulo = "000000000000" + strTitulo;
strTitulo = strTitulo.substring(strTitulo.length() - 12);
}
else if (strTitulo.length() > 12)
{
return "Número inválido!"; //Caso tenha mais que 12 dÃgitos
}
}
qDig = strTitulo.length(); //Total de caracteres
//Gravar posição dos caracteres
dig1 = Integer.parseInt(Mid(strTitulo, qDig - 11, 1));
dig2 = Integer.parseInt(Mid(strTitulo, qDig - 10, 1));
dig3 = Integer.parseInt(Mid(strTitulo, qDig - 9, 1));
dig4 = Integer.parseInt(Mid(strTitulo, qDig - 8, 1));
dig5 = Integer.parseInt(Mid(strTitulo, qDig - 7, 1));
dig6 = Integer.parseInt(Mid(strTitulo, qDig - 6, 1));
dig7 = Integer.parseInt(Mid(strTitulo, qDig - 5, 1));
dig8 = Integer.parseInt(Mid(strTitulo, qDig - 4, 1));
dig9 = Integer.parseInt(Mid(strTitulo, qDig - 3, 1));
dig10 = Integer.parseInt(Mid(strTitulo, qDig - 2, 1));
dig11 = Integer.parseInt(Mid(strTitulo, qDig - 1, 1));
dig12 = Integer.parseInt(Mid(strTitulo, qDig, 1));
//Cálculo para o primeiro dÃgito validador
dv1 = (dig1 * 2) + (dig2 * 3) + (dig3 * 4) + (dig4 * 5) + (dig5 * 6) +
(dig6 * 7) + (dig7 * 8) + (dig8 * 9);
dv1 = dv1 % 11;
if (dv1 == 10)
{
dv1 = 0; //Se o resto for igual a 10, dv1 igual a zero
}
//Cálculo para o segundo dÃgito validador
dv2 = (dig9 * 7) + (dig10 * 8) + (dv1 * 9);
dv2 = dv2 % 11;
if (dv2 == 10)
{
dv2 = 0; //Se o resto for igual a 10, dv1 igual a zero
}
//Validação dos dÃgitos validadores, após o cálculo realizado
if (dig11 == dv1 && dig12 == dv2)
{
return "TÃtulo Válido!";
}
else
{
return "TÃtulo Inválido!";
}
}
/**
* Função para validar TÃtulo Eleitoral
*
*/
Function TestaTitulo(pTitulo)
Local digito1 := 0
Local digito2 := 0
Local decr1 := 9
Local i := 0
Local j := 0
Local cTitulo := StrZero(Val(pTitulo),12)
If !Empty(pTitulo) .AND. pTitulo != '000000000000'
For i:=1 To 8
digito1 := (digito1 + Val(SubStr(cTitulo,i,1)) * decr1)
decr1:= (decr1 - 1)
Next
digito1 := digito1% 11
If digito1 == 0 .or. digito1 == 1
If Val(substr(cTitulo,9,1))== 0 .and. (Val(SubStr(cTitulo,10,1)) == 1 .or. Val(SubStr(cTitulo,10,1)) == 2)
If digito1 = 0
digito1 := 1
Else
digito1 := 0
Endif
Else
digito1 := 0
EndIf
else
digito1 := (11 - digito1)
EndIf
If (digito1 = Val(SubStr(cTitulo,11,1)))
j := 1
Else
j := 0
EndIf
If (j = 1)
digito2 := (Val(SubStr(cTitulo,9,1))*4) + (Val(SubStr(cTitulo,10,1))*3) + (digito1*2)
digito2 := digito2 % 11
If ((digito2 = 0 ) .or. (digito2 = 1))
If (Val(SubStr(cTitulo,9,1))= 0 .and. (Val(SubStr(cTitulo,10,1)) = 1 .or. Val(SubStr(cTitulo,10,1)) = 2))
If digito2 = 0
digito2 := 1
Else
digito2 := 0
EndIf
Else
digito2 := 0
EndIf
Else
digito2 := (11 - digito2)
Endif
If (digito2 <> Val(substr(cTitulo,12,1)))
j := 0
Else
j := 1
EndIf
Endif
EndIf
If (j = 1)
If Empty(pTitulo) .or. pTitulo == '000000000000'
Return .F.
Else
Return .T.
Endif
Else
Return .F.
EndIf
Return .T.
Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes