En muchos programas necesitaremos convertir un tipo de dato a otro tipo.
Gambas nos proporciona una serie de funciones que realizan distintos tipos de conversión:
Mas información: http://gambasdoc.org/help/cat/conv?en&v3 y http://gambasdoc.org/help/cat/conv?es&v3
Un ejemplo:
Este programa recibe una cadena, lo convierte en un numero, y le suma 23, mostrando el resultado:
-->
Gambas nos proporciona una serie de funciones que realizan distintos tipos de conversión:
Funciones de Conversión
CBool | Convierte un valor en Boolean. |
CByte | Convierte un valor en Byte. |
CDate | Convierte un valor en Date. |
CFloat | Convierte un valor en Float. |
CInt | Convierte un valor en Integer. |
CLong | Convierte un valor en Long. |
Conv$ | Convierte una cadena de un juego de caracteres a otro. |
CShort | Convierte un valor en Short. |
CSng | Convierte un valor en Single. |
CStr | Convierte un valor en String. |
CVariant |
Convierte un valor en Variant.
Sólo en versión 3.0
|
DConv$ | Convierte una cadena del juego de caracteres del sistema a UTF-8 (juego de caracteres de la interfaz gráfica). |
SConv$ | Convierte una cadena desde el juego de caracteres UTF-8 (el empleado en la interfaz gráfica) al juego de caracteres del sistema. |
Str$ | Convierte un número o fecha en una cadena. |
Val | Convierte una cadena en un número o fecha. |
Mas información: http://gambasdoc.org/help/cat/conv?en&v3 y http://gambasdoc.org/help/cat/conv?es&v3
Un ejemplo:
Este programa recibe una cadena, lo convierte en un numero, y le suma 23, mostrando el resultado:
Dim
cadena As
String
Dim
numero As
Float
Print
"Ejemplo
de conversion de tipos:"
Print
"Convertir
una cadena en un numero"
Input
cadena
Print
"Esto
seria cadena:",
cadena
numero
=
Val(cadena) 'aqui hago uso de la función de conversión
Print
"Esto
seria como un numero: ",
numero
numero
+=
23
'le
sumo al numero 23 unidades
Print
"Y
puedo realizar operaciones con el numero:",
numero
Descarga del ejemplo completo: Enlace
Nota:
Añado aqui otro código, este hace uso de la orden Try (ver gestion de excepciones y errores )
Este código "comprueba" que el usuario ha escrito un número y no un texto (que origina un error del tipo "No coinciden los tipos: Requerido Float, obtenido Null en cambio"). En caso de que el usuario escriba un texto, el programa vuelve a pedir que se introduzca de nuevo un número, (para ello usa el bucle while wend)
'
Gambas module file
Public
Sub
Main()
Dim
cadena As
String
Dim
numero As
Float
Dim
Nosalir As
Float =
True
Print
"Ejemplo
de conversion de tipos:"
Print
"Convertir
una cadena en un numero"
While
Nosalir 'bucle que se repite hasta que se haya introducido un numero
Print
"introduce
numero:"
Input
cadena
Print
"Esto
seria cadena:", cadena
Try
numero =
Val(cadena)
'aqui hago
uso de la función de conversión y de la instrucción Try, que si se detecta que si se ha producido un error.
If
Error
Then
Print
"El
usuario no ha introducido un numero, vuelve a intentarlo"
Nosalir =
True
Else
NOsalir =
False 'esto hace que al evaluarse la condicion del bucle While, salgamos de este
Endif
Wend
Print
"Esto
seria como un numero: ", numero
numero +=
23
'le sumo
al numero 23 unidades
Print
"Y
puedo realizar operaciones con el numero:",
numero
End
Descarga del código de ejemplo: enlace