Bueno amigos tengo un codigo que me permite saber si es rut ingresado es correcto o no.
Pero lo que necesito hacer ahora es validar que solo sean numeros.
Como esto es un trabajo nos limitaron a que solo utilizaramos el ciclo FOR para esta validacion, estoy realizando esto.
Código vb.net:
Ver original'******************PROBLEMAS*************************
switch = 0
For k = 1 To
If switch = 1 Then
MsgBox("El rut solo acepta numeros " & n
) Exit Sub
End If
For i = 0 To 9
n = Mid(txtrut.Text, k, k)
If i = n Then
switch = 0
i = 100
Else
switch = 1
End If
Next
Next
'*****************************************************
Lo que intento hacer es rescartar 1 por 1 los numeros del digito y comprabar si esa 0,1,2,3,4,5,6,7,8,9.
si es numero es encontrado la idea es romper el ciclo. Si el numero no se encuentra que salga con switch en 1 y lance el error.
Espero que me puedan ayudar ya el codigo no funciona como debiese.
-------------------------------
CODIGO COMPLETO
-------------------------------
Código vb.net:
Ver originalPublic Class Form1
Private Sub btnvalida_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnvalida.Click
'creamos las variables que vamos a usar
Dim digito As Integer
Dim dv As String
Dim dvreal As String
Dim Contador As Integer
Dim Multiplo As Integer
Dim Acumulador As Integer
Dim largo As Integer
Dim i As Integer
Dim n As Integer
Dim k As Integer
Dim switch As Integer
largo = Len(txtrut.Text)
If largo < 8 Then
MsgBox("El RUT es muy pequeño") Exit Sub
End If
dvreal
= UCase(Mid
(txtrut
.Text, largo, largo
- 1)) digito
= Val(Mid
(txtrut
.Text,
1, largo
- 1)) '******************PROBLEMAS*************************
switch = 0
For k = 1 To
If switch = 1 Then
MsgBox("El rut solo acepta numeros " & n
) Exit Sub
End If
For i = 0 To 9
n = Mid(txtrut.Text, k, k)
If i = n Then
switch = 0
i = 100
Else
switch = 1
End If
Next
Next
'*****************************************************
Contador = 2
Acumulador = 0
While digito <> 0
Multiplo = (digito Mod 10) * Contador
Acumulador = Acumulador + Multiplo
digito = digito \ 10
Contador = Contador + 1
If Contador = 8 Then
Contador = 2
End If
End While
digito = 11 - (Acumulador Mod 11)
dv = CStr(digito)
If digito = 10 Then dv = "K"
If digito = 11 Then dv = "0"
If dv = dvreal Then
MsgBox("El RUT es CORRECTO",
"Validacion de RUT") Else
MsgBox("El RUT es INCORRECTO",
"Validacion de RUT") End If
End Sub
End Class