Ir para conteúdo
Fórum Script Brasil
  • 0

Função Que Valida Título De Eleitor


Marcos-rj

Pergunta

Function Valida_TE(NumTE As String) As Boolean
    '------------------------------------------------------------------------------------------------------
    'Esta função valida o Título de Eleitor, através do dígito verificador
    'Autor: José Maria Macedo do Vale (www.guiadoeleitor.com.br)
    'Baseada no artigo 12 da Resolução TSE nº 21538/2003
    '------------------------------------------------------------------------------------------------------
    Dim soma, resto, i, digito1, digito2 As Integer
    If Len(NumTE) < 12 Then NumTE = String(12 - Len(NumTE), "0") + NumTE
    If Len(NumTE) > 12 Then Valida_TE = False: Exit Function
    'valida a unidade da federação do TE
    If Val(Mid(NumTE, 9, 2)) < 1 Or Val(Mid(NumTE, 9, 2)) > 28 Then Valida_TE = False: Exit Function
    'valida o primeiro dígito
    soma = 0
    For i = 1 To 8
        soma = soma + Val(Mid$(NumTE, i, 1)) * (10 - i)
    Next i
    resto = soma Mod 11
    If resto = 0 Then
        If Mid(NumTE, 9, 2) = "01" Or Mid(NumTE, 9, 2) = "02" Then digito1 = 1 Else digito1 = 0
    Else
        If resto = 1 Then digito1 = 0 Else digito1 = 11 - resto
    End If
    If digito1 <> Val(Mid$(NumTE, 11, 1)) Then Valida_TE = False: Exit Function
    'valida o segundo dígito
    soma = 0
    For i = 9 To 10
        soma = soma + Val(Mid$(NumTE, i, 1)) * (13 - i)
    Next i
    soma = soma + digito1 * 2
    resto = soma Mod 11
    If resto = 0 Then
        If Mid(NumTE, 9, 2) = "01" Or Mid(NumTE, 9, 2) = "02" Then digito2 = 1 Else digito2 = 0
    Else
        If resto = 1 Then digito2 = 0 Else digito2 = 11 - resto
    End If
    If digito2 <> Val(Mid$(NumTE, 12, 1)) Then Valida_TE = False: Exit Function
    Valida_TE = True
End Function

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...