Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/06/2010, 17:11
Avatar de xalupeao
xalupeao
 
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 7 meses
Puntos: 12
Validacion de RUT (Chile)

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
  1. '******************PROBLEMAS*************************
  2.         switch = 0
  3.         For k = 1 To
  4.             If switch = 1 Then
  5.                 MsgBox("El rut solo acepta numeros " & n)
  6.                 Exit Sub
  7.             End If
  8.             For i = 0 To 9
  9.                 n = Mid(txtrut.Text, k, k)
  10.                 If i = n Then
  11.                     switch = 0
  12.                     i = 100
  13.                 Else
  14.                     switch = 1
  15.                 End If
  16.             Next
  17.         Next
  18.         '*****************************************************

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 original
  1. Public Class Form1
  2.  
  3.     Private Sub btnvalida_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnvalida.Click
  4.         'creamos las variables que vamos a usar
  5.         Dim digito As Integer
  6.         Dim dv As String
  7.         Dim dvreal As String
  8.         Dim Contador As Integer
  9.         Dim Multiplo As Integer
  10.         Dim Acumulador As Integer
  11.         Dim largo As Integer
  12.         Dim i As Integer
  13.         Dim n As Integer
  14.         Dim k As Integer
  15.         Dim switch As Integer
  16.         largo = Len(txtrut.Text)
  17.         If largo < 8 Then
  18.             MsgBox("El RUT es muy pequeño")
  19.             Exit Sub
  20.         End If
  21.         dvreal = UCase(Mid(txtrut.Text, largo, largo - 1))
  22.         digito = Val(Mid(txtrut.Text, 1, largo - 1))
  23.         '******************PROBLEMAS*************************
  24.         switch = 0
  25.         For k = 1 To
  26.             If switch = 1 Then
  27.                 MsgBox("El rut solo acepta numeros " & n)
  28.                 Exit Sub
  29.             End If
  30.             For i = 0 To 9
  31.                 n = Mid(txtrut.Text, k, k)
  32.                 If i = n Then
  33.                     switch = 0
  34.                     i = 100
  35.                 Else
  36.                     switch = 1
  37.                 End If
  38.             Next
  39.         Next
  40.         '*****************************************************
  41.         Contador = 2
  42.         Acumulador = 0
  43.         While digito <> 0
  44.             Multiplo = (digito Mod 10) * Contador
  45.             Acumulador = Acumulador + Multiplo
  46.             digito = digito \ 10
  47.             Contador = Contador + 1
  48.             If Contador = 8 Then
  49.                 Contador = 2
  50.             End If
  51.         End While
  52.         digito = 11 - (Acumulador Mod 11)
  53.         dv = CStr(digito)
  54.         If digito = 10 Then dv = "K"
  55.         If digito = 11 Then dv = "0"
  56.         If dv = dvreal Then
  57.             MsgBox("El RUT es CORRECTO", "Validacion de RUT")
  58.         Else
  59.             MsgBox("El RUT es INCORRECTO", "Validacion de RUT")
  60.         End If
  61.     End Sub
  62. End Class
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.