Asignar valores a una variable
Para asignar un valor a una variable utilizamos el operador = siguiendo la siguiente sintaxis:
<variable> = <valor>
Asignar un valor de tipo cadena (string)
Un valor de tipo cadena (string) es lo que comunmente denominamos texto. Estará formado por ninguno, uno o más carácteres alfanuméricos, y lo asignaremos a una variable encerrando el texto entre comillas dobles.
<variable> = "<valor>"
Por ejemplo:
Dim MiTexto As String MiTexto = "" ' asigna un texto vacío a la variable MiTexto = "Hola" ' asigna el texto Hola a la variable MiTexto = "Hola, que tal" ' asigna el texto Hola, que tal a la variable MiTexto = "1.234,50" ' asigna EL TEXTO 1.234,50 a la variable. ' NO ES UN NÚMERO MiTexto = "Hoy es 25/08/2012" ' asigna el texto a la variable MiTexto = "25/08/2012" ' asigna EL TEXTO 25/08/2012 a la variable. ' NO ES UNA FECHA
OpenOffice Basic almacena las variables de tipo string en formato Unicode, con un tamaño máximo de 65536 caracteres. El espacio ocupado en la memoria para almacenar el contenido de la variable depende del tamaño de la cadena; Unicode utiliza cuatro bytes por caracter.
Podemos unir dos o más cadenas de texto utilizando el operador &
Dim MiTexto As String MiTexto = "Hola, ¿que tal?." & "Hoy es 25/08/2012." MsgBox MiTexto
Asignará a la variable MiTexto el valor Hola, ¿que tal?.Hoy es 25/08/2012..
Si deseamos unir cadenas largas, podemos utilizar el símbolo _ (subrayado) al final de una línea, símbolo admitido por OpenOffice Basic para dividir una larga línea de código en varias líneas más cortas.
Dim MiTexto As String MiTexto = "Hola, ¿que tal?. Hoy parece que tendremos un buen día." & _ "Esperemos que no llueva." MsgBox MiTexto
Asignará a la variable MiTexto el valor Hola, ¿que tal?. Hoy parece que tendremos un buen día.Esperemos que no llueva..
Como hemos visto, para asignar un texto a una variable tenemos que encerrar éste entre comillas dobles. Pero ¿y si el texto contiene a su vez comillas dobles?
Para asignar a una variable un texto que contiene comillas dobles, escribiremos dos veces las comillas dobles del texto.
Así, para asignar el texto Soy "valenciano", pues nací en Valencia a una variable, escribiremos el texto como Soy ""valenciano"", pues nací en Valencia encerrado entre comillas dobles, como ilustra el siguiente ejemplo:
Dim MiTexto As String MiTexto = "Soy ""valenciano"", pues nací en Valencia" MsgBox MiTexto
Asignar un valor de tipo numérico
Un valor de tipo numérico es lo que comunmente denominamos número. Estará formado por ninguno, uno o más carácteres numéricos, utilizando el punto como separador decimal, y lo asignaremos a una variable escribiendo el valor detrás del signo =.
<variable> = <valorEntero.decimales>
No se indicarán los separadores de millares, pero independientemente de tu configuración regional, indicarás con un punto el separador decimal, si es necesario. Puedes no escribir el cero delante del punto decimal de un número con decimales cuya parte entera sea cero.
Dim MiNumero As Integer, MiMoneda As Currency, MiNumeroConDecimales As Single MiNumero = 3500 MiMoneda = 3500.25 MiNumeroConDecimales = .25
Para indicar un número negativo, insertaremos el signo - delante del número, con o sin espacio en blanco. El signo positivo no es necesario indicarlo, pero si deseas indicarlo, puedes hacerlo del mismo modo.
Dim MiNumero As Integer, MiMoneda As Currency, MiNumeroConDecimales As Single MiNumero = -3500 MiNumero = - 3500 MiMoneda = +3500.25 MiMoneda = + 3500.25 MiNumeroConDecimales = -0.25 MiNumeroConDecimales = -.25
Al asignar un valor decimal a una variable de tipo numérico sin decimales, OpenOffice Basic redondeará el número hasta su valor entero; si la parte decimal es mayor o igual a 0.50, al entero superior, o al entero sin decimales en caso contrario.
Dim i As Integer i = 2.45 ' i toma el valor 2 i = 2.50 ' i toma el valor 3 i = 2.55 ' i toma el valor 3
Se admite la asignación de valores numéricos en formato exponencial. El número en formato exponencial se escribirá con la letra E en mayúsculas o minúsculas, pero no deberá tener espacios en blanco. La parte decimal del número exponencial deberá ser un número entero
Dim MiNumero As Double MiNumero = 3.15E5 MiNumero = -3.15e5 MiNumero = 3.15E-5 MiNumero = 3.15E -5 ' incorrecto; la variable contendrá 3.15 - 5 = -1.85 MiNumero = 3.15E2.5 ' incorrecto; la variable contendrá 3.15E2
Se admite también la asignación de números en formato hexadecimal (precedidos por el identificador &H) y octal (precedidos por el identificador &O).
Dim MiNumero As Long MiNumero = &HFF ' 255 en formato hexadecimal MiNumero = &O377 ' 255 en formato octal
A la hora de asignar valores octales o hexadecimales a una variable es conveniente que ésta haya sido declarada como variable de tipo Long |
Asignar un valor booleano
Un valor de tipo booleano es lo que comunmente denominamos verdadero o falso, apagado o encendido, si o no. Lo asignaremos a una variable escribiendo el valor detrás del signo = con las palabras en inglés TRUE o FALSE, sin utilizar comillas, pues no se trata de una cadena. Se puede escribir en mayúsculas, minúsculas o cualquier combinación.
<variable> = <valor>
Dim l As Boolean l = TRUE l = FALSE
Se puede utilizar también el valor 0 o "" para FALSE, y cualquier otro valor numérico para TRUE.
Dim SiNo As Boolean SiNo = 0 ' Es lo mismo que SiNo = FALSE SiNo = "" ' Es lo mismo que SiNo = FALSE SiNo = 1 ' Es lo mismo que SiNo = TRUE SiNo = -1 ' Es lo mismo que SiNo = TRUE SiNo = 25 ' Es lo mismo que SiNo = TRUE
Asignar un valor de fecha
Un valor de tipo fecha permite indicar una fecha, una hora, o una fecha y hora. Lo asignaremos a una variable escribiendo el valor detrás del signo = entre comillas dobles, utilizando el formato de fecha (y hora) local configurado para tu sistema operativo.
Es indiferente utilizar el separador - o el separador / para la fecha; OpenOffice Basic lo convertirá al formato por defecto del sistema operativo.
<variable> = "<valor>"
Dim MiFecha As Date, MiHora As Date, MiFechaHora As Date MiFecha = "01-01-12" ' La variable toma el valor 01/01/2012 MiFecha = "01/01/12" ' La variable toma el valor 01/01/2012 MiFecha = "01/01/2012" ' La variable toma el valor 01/01/2012 MiHora = "10:15:00" ' La variable toma el valor 30/12/1899 10:15:00 MiFechaHora = "01-01-12 10:15" ' La variable toma el valor 01/01/2012 10:15:00
Las variables de tipo fecha pueden almacenar fracciones de segundo, y se asignan añadiendo las fracciones tras los segundos, separados por una coma.
Sub Main Dim Variable1 As Date, Variable2 As Date Variable1 ="13/3/2012 10:12:15,10" Variable2 ="13/3/2012 10:12:15,55" MsgBox Variable1=Variable2 ' Obtendremos False si las variables son distintas MsgBox Format(Variable1, "dd/mm/yyyy hh:mm:ss.00") & _ Chr(10) & _ Format(Variable2, "dd/mm/yyyy hh:mm:ss.00") End Sub
Si la aplicación que estás construyendo se va a ejecutar en ordenadores con distintas configuraciones regionales de fecha (por ejemplo, en España la fecha se indica con el formato día-mes-año, mientras que en EEUU se utiliza el formato mes-día-año) es conveniente utilizar la función DateSerial para asignar desde el código una fecha a una variable.
Supongamos que trabajas con un ordenador con la configuración regional ES. Una expresión como
Dim MiFecha As Date MiFecha = "01-03-12"
al ejecutarse en un ordenador con la configuración regional ES se corresponde al uno de marzo, mientras que si se ejecuta en un ordenador con la configuración regional EN, se corresponde al tres de enero.
La sintaxis de DateSerial es:
<variable> = DateSerial(año,mes,día)
y se utilizaría de la siguiente forma:
Dim MiFecha As Date MiFecha = DateSerial(2012,03,01)
La variable adquiere el valor uno de marzo independientemente de la configuración regional del ordenador donde se ejecute el código Basic. Consulta la ayuda de OpenOffice para más información sobre DateSerial.
Cuando declaramos una variable de tipo Date (fecha), se crea con el valor 0, equivalente a la fecha base 30/12/1899 00:00:00". Internamente, OpenOffice Basic la almacena como una variable de tipo doble, en la que la parte entera corresponde a la fecha, y la parte decimal a la hora. Una hora tiene el valor 1/24, un minuto el valor 1/(24*60), y un segundo el valor 1/(24*60*60). Las fechas anteriores a la fecha base se almacenarán como valores negativos.
Así, el 30/08/2012, a las 01:10:15 se corresponde con el valor 41151.048784722222222222222222222222222
Sub Main dim x as double x = 41151.048784722222222222222222222222222 msgbox format( x, "dd-mm-yyyy hh:mm:ss") End Sub