VALIDAR CPF
Alguém sabe como criar um sistema que valida o CPF? Eu só quero que diga se o CPF é verdadeiro ou falso, nada mais alem. Aceito idéias para incrementar. VB.NET
EM LINQ:
Public Shared Function isCPF(CPF As String) As Boolean
If (CPF.Length <> 11) Then Return False
Dim t = CPF.Select(Function(c) Int32.Parse(c.ToString())).ToList()
Dim d1 = t.Take(9).Select(Function(e, i) e * (11 - (i + 1))).Sum() Mod 11
If t(9) <> IIf((d1 = 0 OrElse d1 = 1), 0, 11 - d1) Then Return False
Dim d2 = t.Take(10).Select(Function(e, i) e * (11 - i)).Sum() Mod 11
If t(10) <> IIf((d2 = 0 OrElse d2 = 1), 0, 11 - d2) Then Return False
Return True
End Function
Public Shared Function isCPF(CPF As String) As Boolean
If (CPF.Length <> 11) Then Return False
Dim t = CPF.Select(Function(c) Int32.Parse(c.ToString())).ToList()
Dim d1 = t.Take(9).Select(Function(e, i) e * (11 - (i + 1))).Sum() Mod 11
If t(9) <> IIf((d1 = 0 OrElse d1 = 1), 0, 11 - d1) Then Return False
Dim d2 = t.Take(10).Select(Function(e, i) e * (11 - i)).Sum() Mod 11
If t(10) <> IIf((d2 = 0 OrElse d2 = 1), 0, 11 - d2) Then Return False
Return True
End Function
Public Function isCPF(ByVal CPF As String) As Boolean
Dim conta As Integer, soma As Integer, resto As Integer, Passo As Integer
isCPF = False
CPF = Trim(CPF)
CPF = Replace(CPF, [Ô].[Ô], [Ô][Ô])
CPF = Replace(CPF, [Ô]-[Ô], [Ô][Ô])
If Len(CPF) <> 11 Then
Exit Function
End If
For Passo = 11 To 12
soma = 0
For conta = 1 To Passo - 2
soma = soma + Val(Mid(CPF, conta, 1)) * (Passo - conta)
Next
resto = 11 - (soma - (Int(soma / 11) * 11))
If resto = 10 Or resto = 11 Then resto = 0
If resto <> Val(Mid(CPF, Passo - 1, 1)) Then
Exit Function
End If
Next
isCPF = True
End Function
Ret = isCPF(TXT_CNPJ.Text)
If Ret = False Then
MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] Inválido[Ô], vbCritical, [Ô]Aviso[Ô])
End If
Dim conta As Integer, soma As Integer, resto As Integer, Passo As Integer
isCPF = False
CPF = Trim(CPF)
CPF = Replace(CPF, [Ô].[Ô], [Ô][Ô])
CPF = Replace(CPF, [Ô]-[Ô], [Ô][Ô])
If Len(CPF) <> 11 Then
Exit Function
End If
For Passo = 11 To 12
soma = 0
For conta = 1 To Passo - 2
soma = soma + Val(Mid(CPF, conta, 1)) * (Passo - conta)
Next
resto = 11 - (soma - (Int(soma / 11) * 11))
If resto = 10 Or resto = 11 Then resto = 0
If resto <> Val(Mid(CPF, Passo - 1, 1)) Then
Exit Function
End If
Next
isCPF = True
End Function
Ret = isCPF(TXT_CNPJ.Text)
If Ret = False Then
MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] Inválido[Ô], vbCritical, [Ô]Aviso[Ô])
End If
Vou fazer o teste hoje!
Tópico encerrado , respostas não são mais permitidas