Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 
buenas....

programando algo de consola pedimos al usuario un numero por medio de: input  respuesta

pero si el usuario presiona enter sin ingresar nada me tira error  

como podemos evitar eso?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Miercoles, 11 May 2016, 18:19; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar? 
 
¿try seguido de una comprobación?
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar? 
 
Por ejemplo:

Public Sub Main()
  
  Dim edad As Integer
    
  Repeat
    Print "Ingrese su edad: "  
    Try Input edad
    ' Si quiere avisar de que se ha producido un error
    If Error Then Print "No ha ingresado un valor adecuado"
    ' Hasta que deje de existir error
  Until Not Error
  
  Print Subst("Tu edad es: &1", edad)
  
End
 


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar? 
 
Public Function Eleccion() As Integer
  Dim Respuesta As Integer
  
  Repeat
    Try Input Respuesta
    If Error Then Print "No ha ingresado un valor adecuado"
  Until Not Error
  
  Return Respuesta
  
End


gracias por las respuestas, solucionado.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 
Posible otra solución sin Try:

Public Sub Main()

  Dim s As String

    Do
      Input s
      If IsNull(s) Then Print "\e[5m\e[1;31mNo ha ingresado un valor adecuado !\e[0m"
    Loop Until Not IsNull(s)
    
    Print s

End

 



 
última edición por vuott el Jueves, 12 May 2016, 02:29; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 
Vuott:

Siendo cadena no hay problema para detectar si es nulo. Pero v3ctor le interesa que sea un entero.
Si es cadena y tiene que convertir a número, dependiendo de lo que entre el usuario puede ser más engorroso
el código.

No sabemos lo que el usuario va a ingresar. Por error puede insertar letras, incluso letras separadas.
"Blindar" una aplicación para los errores puede llevar un tiempo.

Podemos probar con el tipo Variant y asegurarnos de que no es nulo y además que sea un número.
De esta forma tambien se puede evitar Try

Public Sub Main()
  
  Dim edad As Variant
  
  Repeat
    Print "Ingrese su edad: "
    Input edad
    
  Until Not IsNull(edad) And IsNumber(edad)
  
  Print Subst("Tu edad es: &1", edad)
  
End

 


A ver que opina v3ctor.

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 12 May 2016, 08:53; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 
Supongo que podía haber usado IsInteger en vez de IsNumber,
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 
Shell escribió: [Ver mensaje]
Supongo que podía haber usado IsInteger en vez de IsNumber,


Bueno, Shell, me has dado una idea....

Public Sub Main()

  Dim s As String

    Do
      Input s
      If Not IsDigit(s) Then Print "\e[5m\e[1;31mNo ha ingresado un valor adecuado !\e[0m"
    Loop Until IsDigit(s)
    
    Print s

End


Si le interesa que regrese un valor numerico, puede usar la función Val( ):

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 

Public Function Eleccion(puntos As Integer[]) As Integer
  Dim Respuesta As Integer
  Dim num As Integer
  Dim permiso As Boolean
  
  Print "Entre su elección: "
  
  Repeat
    Try Input Respuesta
    If Error Then
     Continue
    Else
       For Each num In puntos
         If num = Respuesta Then
           permiso = True
           Break
         Endif
       Next
    Endif
  
  Until permiso = True
  
  Return Respuesta
  
End



esto es lo que he hecho ya que las respuesta serán números que corresponden a opciones menús,
si se teclea cualquier cosa que no sea el conjunto de números en el array numérico no sale del bucle.

1- comandos información sistema
2- comandos de disco
3-comandos de red
4-volver
5- salir del programa

y si al principio era que al teclear enter la variable respuesta quedaba null
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Input Tira Error Si No Se Ingresa Ningún Valor! Como Solucionar?[Resuelto] 
 
v3ctor escribió: [Ver mensaje]
si se teclea cualquier cosa que no sea el conjunto de números en el array numérico no sale del bucle.

1- comandos información sistema
2- comandos de disco
3-comandos de red
4-volver
5- salir del programa


Uhmmm...... podría proponer este código:  
Public Function Eleccion() As String

  Dim Respuesta As String

    Do
      Input Respuesta
    Loop Until (Len(Respuesta) < 2) And (Respuesta > "0") And (Respuesta < "6")
  
    Return Respuesta

End




Ejemplo practico muy sencillo:
Public Sub Main()

  Dim res As String
    
    res = Eleccion()
    
    Select Case res
      Case "1"
        .........
      Case "2"
        .........
      case etc...
      etc...
    End Select

End


Private Function Eleccion() As String

  Dim Respuesta As String

    Do
      Input Respuesta
    Loop Until (Len(Respuesta) < 2) And (Respuesta > "0") And (Respuesta < "6")
  
    Return Respuesta

End

 



 
última edición por vuott el Jueves, 12 May 2016, 16:54; editado 8 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Identificar Un Valor Dentro De Un TexBox OneErick General 19 Domingo, 19 May 2013, 13:15 Ver último mensaje
Shell
No hay nuevos mensajes Error De Copilación (rpm)[Resuelto] v3ctor General 7 Domingo, 02 Agosto 2015, 18:01 Ver último mensaje
v3ctor
No hay nuevos mensajes El Programa Retornó El Valor: 1 (Error Al... v3ctor General 3 Martes, 30 Agosto 2016, 20:41 Ver último mensaje
jguardon
No hay nuevos mensajes Error Indice En Tabla Sqlite3?[Resuelto] v3ctor Bases de Datos 5 Domingo, 25 Junio 2017, 23:15 Ver último mensaje
mckaygerhard
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron