Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Mascara de entrada

Estas en el tema de Mascara de entrada en el foro de Visual Basic clásico en Foros del Web. Que tal buenos días!! Estoy trabajando en una sistema en access que lleva registros de kilometrajes, pero deben ser reflejados de la siguiente forma 1+256.25, ...
  #1 (permalink)  
Antiguo 15/01/2010, 10:13
 
Fecha de Ingreso: junio-2008
Mensajes: 26
Antigüedad: 15 años, 10 meses
Puntos: 0
Mascara de entrada

Que tal buenos días!!

Estoy trabajando en una sistema en access que lleva registros de kilometrajes, pero deben ser reflejados de la siguiente forma 1+256.25, pero no podria ser de esta forma #+###.## ya que pueden haber killometrajes asi 100+256.25 o 25+365.25, pense en guardalos como texto pero luego me tope con que necesito hacer operaciones con esos numeros (sumar, restar,..), asi que necesito que se guarden como numero o tal vez podria extraer los numeros de la cadena de texto, pero no se como hacerlo..

como se podran dar cuenta estoy echo bolas, si alguien puede ayudarme por favor estaria muy agradecido..

Buen día!!
  #2 (permalink)  
Antiguo 15/01/2010, 11:39
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Mascara de entrada

Puedes guardarlo como texto y crearte funciones que devuelvan la parte que quieras del texto.

Ejm: una función que extrae la parte anterior al +

Código vb:
Ver original
  1. Function ExtrP1(Cadena As String) As Integer
  2.     ExtrP1 = Left$(Cadena, InStr(1, Cadena, "+"))
  3. End Function
MsgBox ExtrP1("25+365.25")
esto devuelve el primer 25 en formato Integer

o una funcion que devuelva un integer con cualquiera de las 3 partes del texto:

Código vb:
Ver original
  1. Function Extrae(Cadena As String, NumDato As Integer) As Integer
  2.   Select Case NumDato
  3.     Case 1:
  4.       Extrae = Left$(Cadena, InStr(1, Cadena, "+"))
  5.     Case 2:
  6.       Extrae = Mid$(Cadena, InStr(1, Cadena, "+") + 1, Len(Cadena) - InStrRev(Cadena, ".") + 1)
  7.     Case 3:
  8.       Extrae = Mid$(Cadena, InStrRev(Cadena, ".") + 1)
  9.     Case Else
  10.       MsgBox "Número de dato inválido"
  11.   End Select
  12. End Function

MsgBox Extrae("25+365.25", 2)
Esto devuelve el 365 en Integer

Este es un modo. Todo depende de como tienes el dato en principio y que partes necesitas usar después.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 15/01/2010, 11:59
 
Fecha de Ingreso: junio-2008
Mensajes: 26
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Mascara de entrada

antes que nada, gracias por contestar..

lo que quiero extraer son todos los numeros 25+365.69 quedaria 25365.69..

tratare de usar esas funciones que explicas con contenaciones a ver si sale..
  #4 (permalink)  
Antiguo 15/01/2010, 12:23
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Mascara de entrada

Eso se puede hacer con un reemplazo de texto. Reemplazamos el signo "+" por un texto vacio "" y ya está:

Texto = "25+365.69"
Texto = Replace(Texto, "+", "")

y ya tienes en texto el "25365.69"
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #5 (permalink)  
Antiguo 15/01/2010, 13:42
 
Fecha de Ingreso: junio-2008
Mensajes: 26
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Mascara de entrada

Muchas gracias PKJ..

Etiquetas: entrada, mascara
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.