• Jueves 28 de Marzo de 2024, 22:27

Autor Tema:  Valida RUT que envía DESBORDAMIENTO :( porfis?  (Leído 4241 veces)

will_lover

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Valida RUT que envía DESBORDAMIENTO :( porfis?
« en: Miércoles 4 de Enero de 2012, 16:25 »
0
Buenas tardes, junto con saludarles, quisiera pedirles un poco de ayuda.
 Tengo el siguiente codigo, que funciona bastante bien, pero hay un punto en el que envía un DESBORDAMIENTO ... quien me puede ayudar a resolver esto porfis... se agradece.

Private Sub txtRut_Change()
    If txtRut.Text = "" Then
     txtDigito.Text = ""
    End If
    Dim Vari1, Vari2, Vari3 As Integer
    Vari3 = 2
    For I = 0 To Len(txtRut) - 1 ' en esta linea envía el DESBORDAMIENTO!.
     If Left(Right(txtRut, I + 1), 1) <> "." Then
      Vari1 = Vari1 + Left(Right(txtRut, I + 1), 1) * Vari3
      Vari2 = Vari1 Mod 11
      Select Case Vari2
       Case 0
        txtDigito.Text = "0"
       Case 1
        txtDigito.Text = "K"
       Case Else
        txtDigito.Text = 11 - Vari2
      End Select
      If Vari3 = 7 Then
       Vari3 = 2
      Else
       Vari3 = Vari3 + 1
      End If
     End If
    Next
End Sub

RHL

  • Nuevo Miembro
  • *
  • Mensajes: 23
  • Nacionalidad: 00
  • In the Inside...
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #1 en: Domingo 8 de Enero de 2012, 04:00 »
0
Es porque el valor devuelto a tu variable I es demaciado grande cambia el tipo de dato de la variable I a un tipo long

will_lover

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #2 en: Domingo 8 de Enero de 2012, 22:26 »
0
OK... muchisimas gracias..
 pero te puedo molestar otra vez¿?¿'  sorry... pero mi experiencia programando no ha sido mucha..
 
mira  en esta linea : CAL1 = CAL1 + Left(Right(txtRut, I + 1), 1) * CAL3  me dice "Error 13' en tiempo de ejecución LOS TIPOS NO COINCIDEN-"  Y SI TE DAS CUENTA EN EL CODIGO QUE PEDI AYUDA ANTERIORMENTE... CAL1, CAL2, CAL3 SON DE TIPO INTEGER... QUE ESTA MAL AHI¿?¿
 
mUCHAS GRACIAS..
 ;)

RHL

  • Nuevo Miembro
  • *
  • Mensajes: 23
  • Nacionalidad: 00
  • In the Inside...
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #3 en: Lunes 9 de Enero de 2012, 03:44 »
0
Es porque estas intentando sumar una valor integer ( tus variables ) y una variable de tipo cadena...
Si digamos que tienes una cadena de este tipo: "abcd123"
y quieres hacer una operacion aritmetica con el 2 que se encuentre en la cadena, tenes que usar la funcion CInt para
que lo pueda convertir a valor entero y podas hacer operaciones aritmeticas

will_lover

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #4 en: Lunes 9 de Enero de 2012, 03:58 »
0
aun no me funciona.. :(... jejejje pero gracias... lo seguiré intentando!. :D

RHL

  • Nuevo Miembro
  • *
  • Mensajes: 23
  • Nacionalidad: 00
  • In the Inside...
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #5 en: Lunes 9 de Enero de 2012, 04:15 »
0
Me dices que son de tipo integer las variables vari1, vari2, vari3

dices que aqui da error:
Vari1 = Vari1 + Left(Right(txtRut, I + 1), 1) * Vari3

y dices que no funciona entonces debe ser porque el caracter que se obtiene despues de las operaciones:
Left(Right(txtRut, I + 1), 1) no es un alfanumerico.. que quieres hacer ?

will_lover

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #6 en: Lunes 9 de Enero de 2012, 21:15 »
0
ahi es donde me envia el error
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Lunes 9 de Enero de 2012, 21:17 por will_lover »

will_lover

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #7 en: Lunes 9 de Enero de 2012, 21:18 »
0
codigo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

RHL

  • Nuevo Miembro
  • *
  • Mensajes: 23
  • Nacionalidad: 00
  • In the Inside...
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #8 en: Lunes 9 de Enero de 2012, 21:54 »
0
Si debe ser porque el caracter obtenido de las operaciones left y rigth no es un caracter alfanumerico!
osea en la caja de texto ingresas letras no numeros

will_lover

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re:Valida RUT que envía DESBORDAMIENTO :( porfis?
« Respuesta #9 en: Lunes 9 de Enero de 2012, 22:53 »
0
Lindo precioso... lo solucioné... muchas gracias... me ayudaste a encender la ampolleta.. jhajajajja
 toy feliz feliz...
 sabes lo que era¿?¡ 


Private Sub txtRut_Change()

    If txtRut.Text = "" Then
        txtdigito.Text = " ?[/b]" ' Esto era.. simplemente dejar el campo de texto "" asi... vacio...
    End If
    Dim CAL1, CAL2, CAL3 As Integer
    Dim I As Long
        CAL3 = 2
    For I = 0 To Len(txtRut) - 1
         If Left(Right(txtRut, I + 1), 1) <> "." Then
        CAL1 = CAL1 + Left(Right(txtRut, I + 1), 1) * CAL3
        CAL2 = CAL1 Mod 11

            Select Case CAL2
                 Case 0
                  txtdigito.Text = "0"
                 Case 1
                  txtdigito.Text = "K"
                 Case Else
                  txtdigito.Text = 11 - CAL2
            End Select

            If CAL3 = 7 Then
                CAL3 = 2
            Else
                CAL3 = CAL3 + 1
            End If
        End If
    Next
End Sub



 como no lo vi antes... ... muchas gracias.... eres un sol... :)