Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso. Para obtener más información o bien conocer cómo cambiar la configuración lea nuestra Política de cookies

Revisión a fecha de 01:39 28 ago 2015; Salva (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

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
Señal Nota.png

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
Modificada el 28 ago 2015 01:39.   Visitas: 20 996