Funciones de conversión
Dim iEdad As Integer
iEdad = CInt(InputBox("¿Cuántos años tienes?")))
Si no realizamos la conversión del resultado del uso de InputBox(), el dato resultante será una cadena alfanumérica, pero no un valor numérico. De no mediar la flexibilidad tipológica de OOo Basic, obtendríamos una respuesta de error o lo que es peor: al intentar operar con dicho valor nos provocaría un fallo en el script.
Otra situación interesante (y frecuente) es cuando solicitamos la introducción de un dato de tipo fecha y lo hacemos sobre una interface que devuelve datos tipo alfanumérico (otra vez InputBox(), pero no sólo). Si usamos la función de conversión (CDate()) convertimos el valor devuelto en una fecha y podemos operar con ella como tal con las funciones disponibles o las que creemos nosotros mismos.
Podemos apreciar, por lo dicho, que las funcione de conversión nos permiten, además, utilizar formas de trabajar con los datos y con el proceso Input de forma mucho más flexible de lo que podríamos hacerlo sin contar con ellas. Esta es una segunda utilidad muy interesante.
Veamos cuáles son las funciones de conversión:
La Wiki de OpenOffice nos ofrece una tabla resumen muy útil en cuya columna FC se recogen las funciones de conversión disponibles en OOo Basic. Se debe entender que cada una de estas funciones convierte un dato al tipo que se expresa en ellas (CDate -> convierte el dato al tipo Fecha). Su uso es así de simple (el resto de las funciones usa la misma lógica y sintaxis):
vFechaNacimiento = CDate(sFechaNac)
Como muestra la tabla precedente, todos los tipos de variables cuentan con su función de conversión, a excepción del tipo Object que carece de función de conversión.
Otra restricción (ésta fácilmente comprensible) es que su aparente simplicidad no supone que podamos convertir cualquier dato en otro, ya que el tipo deseado y el dato presentado deben ser compatibles. Por ejemplo, la cadena alfanumérica (un String) "Casa" no se puede convertir a Integer por mucho que apliquemos la función de conversión CInt(), pero la cadena alfanumérica "123" sí.
No hay comentarios:
Publicar un comentario
Comenta esta entrada