Você está pronto para o kylix?  
    Seja Bem Vindo(a)

 .NET
 ASP
 ASP.NET
 Assembly
 C
 C#
 CGI
 Clarion
 Clipper
 Cobol
 ColdFusion
 CSS
 Delphi
 DHTML
 HTML
 Java
 JavaScript
 Jscript
 JSP
 Kylix
 Lisp
 LUA
 MAX
 MSP
 Pascal
 Perl
 PHP
 Python
 Qbasic
 SQL
 VBScript
 Visual Basic
 Visual Fox Pro
 Water
 WML
 XML
 XP

 Access
 Oracle
 SQL Server

 Lógica
 Orientação a Objeto
 Programação de Jogos

 Sobre o site
 Publicidade
 Expediente
 Contato



Validando CGC e CPF





Os números de CGC e CPF possuem dígitos verificadores para que ?!?!?!...
Horas para serem verificados!!!

Isto é obvio. A validação deve ser feita (por qualquer sistema decente) para impedir a digitação por engano e os CGCs e CPFs falsos.

Function Fu_consistir_CgcCpf (Vl_CgcCpf As String)

' Esta Rotina Devolverá True Se o Cgc/Cpf Informado For valido
' ou False Se o Cgc/Cpf Não For Correto
' Para Chamar esta Rotina de Consistência
' 1 ) Atribuir o valor do CgcCpf a uma Variavel String
' 2 ) Chamar a Rotina com : Fu_consistir_CgcCpf (Variavel)
' Uma Forma Simples de fazer a Consistencia
' é Copiando as linhas abaixo (exemplo)
' para dentro do Programa
' Dim Vl_CgcCpf As String
' Vl_CgcCpf = Me.CgcCpf.Text
' If Fu_consistir_CgcCpf(Vl_CgcCpf) = False then
' MsgBox "( Cgc/Cpf Informado Não é um Cgc/Cpf Correto )"
' Me.CgcCpf.SetFocus
' Exit Sub
' End if

Fu_consistir_CgcCpf = False
Dim VA_CgcCpf As String
Dim VA_Digito As String
Static Numero(15) As Integer
Dim VA_Resto As Integer
Dim VA_Resultado As Integer
Dim VA_SomaDigito10 As Integer
Dim VA_resto1 As Integer
VA_CgcCpf = Format(Vl_CgcCpf, "@@@@@@@@@@@@@@")
VA_Digito = Mid(VA_CgcCpf, 13, 2)
Numero(1) = Val(Mid(VA_CgcCpf, 1, 1))
Numero(2) = Val(Mid(VA_CgcCpf, 2, 1))
Numero(3) = Val(Mid(VA_CgcCpf, 3, 1))
Numero(4) = Val(Mid(VA_CgcCpf, 4, 1))
Numero(5) = Val(Mid(VA_CgcCpf, 5, 1))
Numero(6) = Val(Mid(VA_CgcCpf, 6, 1))
Numero(7) = Val(Mid(VA_CgcCpf, 7, 1))
Numero(8) = Val(Mid(VA_CgcCpf, 8, 1))
Numero(9) = Val(Mid(VA_CgcCpf, 9, 1))
Numero(10) = Val(Mid(VA_CgcCpf, 10, 1))
Numero(11) = Val(Mid(VA_CgcCpf, 11, 1))
Numero(12) = Val(Mid(VA_CgcCpf, 12, 1))
Numero(13) = Val(Mid(VA_CgcCpf, 13, 1))
Numero(14) = Val(Mid(VA_CgcCpf, 14, 1))


If Len(Trim(Vl_CgcCpf)) > 11 Then ' Cgc
VA_Resultado = Numero(1) * 2
If VA_Resultado > 9 Then
VA_SomaDigito10 = VA_Resultado + 1
Else
VA_SomaDigito10 = VA_Resultado
End If
VA_Resultado = Numero(3) * 2
If VA_Resultado > 9 Then
VA_SomaDigito10 = VA_SomaDigito10 + VA_Resultado + 1
Else
VA_SomaDigito10 = VA_SomaDigito10 + VA_Resultado
End If
VA_Resultado = Numero(5) * 2
If VA_Resultado > 9 Then
VA_SomaDigito10 = VA_SomaDigito10 + VA_Resultado + 1
Else
VA_SomaDigito10 = VA_SomaDigito10 + VA_Resultado
End If
VA_Resultado = Numero(7) * 2
If VA_Resultado > 9 Then
VA_SomaDigito10 = VA_SomaDigito10 + VA_Resultado + 1
Else
VA_SomaDigito10 = VA_SomaDigito10 + VA_Resultado
End If
VA_SomaDigito10 = VA_SomaDigito10 + Numero(2) + Numero(4) + Numero(6)
If Mid(Str(VA_SomaDigito10), Len(Str(VA_SomaDigito10)), 1) = "0" Then
VA_Resto = 0
Else
VA_Resto = 10 - Val(Mid(Str(VA_SomaDigito10), _ Len(Str(VA_SomaDigito10)), 1))
End If
If VA_Resto <> Numero(8) Then
Exit Function
End If
VA_Resultado = (Numero(1) * 5) + (Numero(2) * 4) _
+ (Numero(3) * 3) + (Numero(4) * 2) _
+ (Numero(5) * 9) + (Numero(6) * 8) + _
(Numero(7) * 7) + (Numero(8) * 6) + _
(Numero(9) * 5) + (Numero(10) * 4) + _
(Numero(11) * 3) + (Numero(12) * 2)
' Atribui para resto o resto da divisão
' de VA_resultado dividido por 11
VA_Resto = VA_Resultado Mod 11
If VA_Resto < 2 Then
VA_resto1 = 0
Else
VA_resto1 = 11 - VA_Resto
End If
If VA_resto1 <> Numero(13) Then
Exit Function
End If
VA_Resultado = (Numero(1) * 6) + _
(Numero(2) * 5) + (Numero(3) * 4) + _
(Numero(4) * 3) + (Numero(5) * 2) + _
(Numero(6) * 9) + (Numero(7) * 8) + _
(Numero(8) * 7) + (Numero(9) * 6) + _
(Numero(10) * 5) + (Numero(11) * 4) + _
(Numero(12) * 3) + (Numero(13) * 2)
' Atribui para resto o resto da divisão
' de VA_resultado dividido por 11
VA_Resto = VA_Resultado Mod 11
If VA_Resto < 2 Then
VA_resto1 = 0
Else
VA_resto1 = 11 - VA_Resto
End If
If VA_resto1 <> Numero(14) Then
Exit Function
End If
Else ' Cpf
VA_Resultado = (Numero(4) * 1) + _
(Numero(5) * 2) + (Numero(6) * 3) _
+ (Numero(7) * 4) + (Numero(8) * 5) _
+ (Numero(9) * 6) + (Numero(10) * 7)_
+ (Numero(11) * 8) + (Numero(12) * 9)
VA_Resto = VA_Resultado Mod 11
If VA_Resto > 9 Then
VA_resto1 = VA_Resto - 10
Else
VA_resto1 = VA_Resto
End If
If VA_resto1 <> Numero(13) Then
Exit Function
End If

VA_Resultado = (Numero(5) * 1) _
+ (Numero(6) * 2) + (Numero(7) * 3) _
+ (Numero(8) * 4) + (Numero(9) * 5) + _
(Numero(10) * 6) + (Numero(11) * 7) + _
(Numero(12) * 8) + (VA_Resto * 9)
VA_Resto = VA_Resultado Mod 11
If VA_Resto > 9 Then
VA_resto1 = VA_Resto - 10
Else
VA_resto1 = VA_Resto
End If
If VA_resto1 <> Numero(14) Then
Exit Function
End If
End If
Fu_consistir_CgcCpf = True
End Function



 

Sobre:  Sobre o Site | Publicidade | Expediente | Contato