Conteníu

# Usu de variables

De siguío descríbese l'usu básicu de variables en LibreOffice Basic.

## Convenciones de asignación de nomes a variables

Un nome de variable pue tener hasta 255 caráuteres. El primer caráuter d'un nome de variable ten de ser una lletra A-Z o a-z. Los númberos tamién puen usase nos nomes de variable, pero los símbolos de puntuación y los caráuteres especiales nun tán dexaos, con esceición del caráuter de sorrayáu ("_"). En LibreOffice Basic nun se fai distinción ente mayúscules/minúscules nos identificadores de variable. Los nomes de variable puen contener espacios, pero nesi casu tienen d'incluyise ente corchetes.

Exemplos d'identificadores de variable:

        MyNumber=5      'Correct'
        MyNumber5=15    'Correct'
        MyNumber_5=20   'Correct'
        My Number=20    'Not valid, variable with space must be enclosed in square brackets'
        [My Number]=12  'Correct'
        DéjàVu=25       'Nun val, nun se permiten caráuteres especiales'
        5MyNumber=12    'Not valid, variable may not begin with a number'
        Number,Mine=12  'Not valid, punctuation marks are not allowed'

## Declaración de variables

En LibreOffice Basic nun ye necesariu declarar variables explícitamente. Les declaraciones de variable puen realizase cola instrucción Dim. Pue declarar más d'una variable al empar dixebrando los sos nomes con una coma. Pa definir el tipu de variable, use un signu de declaración de tipu dempués del nome o la pallabra clave apropiada.

Exemplos de declaraciones de variable:

        Dim a$               'Declares the variable "a" as a String'
        Dim a As String      'Declares the variable "a" as a String'
        Dim a$, b As Integer 'Declares one variable as a String and one as an Integer'
        Dim c As Boolean     'Declares c as a Boolean variable that can be TRUE or FALSE'

Tenga en cuenta qu'en cuanto declarara una variable como d'un tipu concretu yá nun pue declarala col mesmu nome y un tipu distintu.

When you declare multiple variables in a single line of code you need to specify the type of each variable. If the type of a variable is not explicitly specified, then Basic will assume that the variable is of the Variant type.

      ' Both variables "a" and "b" are of the Integer type
      Dim a As Integer, b As Integer
      ' Variable "c" is a Variant and "d" is an Integer
      Dim c, d As Integer
      ' A variable can also be explicitly declared as a Variant
      Dim e As Variant, f As Double

The Variant type is a special data type that can store any kind of value. To learn more, refer to the section The Variant type below.

### Forzar declaraciones de variables

Pa forzar la declaración de variables, use la orde siguiente:

    Option Explicit

La instrucción Option Explicit tien que ser la primer llinia del módulu, enantes del primera SUB. De normal, namái ye necesariu declarar esplícitamente les matrices. El restu de variables declárense según el caráuter de declaración de tipu o (si s'omite) según el tipu predetermináu Single.

## Tribes de variables

LibreOffice Basic almite cuatro clases de variables:

- Numbérica, pue contener valores numbéricos. Delles variables úsense p'almacenar númberos grandes o pequeños y otres pa númberos de coma flotante o fraiciones.

- Cadena, contién cadenes de caráuteres.

- Les variables Lóxica, contienen el valor TRUE (ciertu) o FALSE (falsu).

- Oxetu, pue almacenar oxetos de diversos tipos, como tables y documentos dientro d'un documentu.

### Variables enteres

El rangu de les variables enteres va de -32768 a 32767. Si asigna un valor de coma flotante a una variable entera, los valores decimales arredondiar al enteru más próximu. Les variables enteres calcúlense rápido nos procedimientos y el so usu ye bien conveniente como variables contador en bucles. Una variable entera namái rique dos bytes de memoria. El caráuter de declaración de tipu ye "%".

    Dim Variable%
    Dim Variable As Integer

### Variables enteres llargues

El rangu de les variables enteres llargues va de -2147483648 a 2147483647. Si asigna un valor de coma flotante a una variable entera llarga, los valores decimales arredondiar al enteru más próximu. Les variables enteres llargues calcúlense rápido nos procedimientos y el so usu bien conveniente como variables contador en bucles de valor bien grande. Una variable entera llarga rique cuatro bytes de memoria. El caráuter de declaración de tipu ye "&".

    Dim Variable&
    Dim Variable As Long

### Variables decimales

Les variables decimales puen tomar númberos positivos y negativos o'l númberu cero. La exactitú esta hasta 29 díxitos.

Pues usar un signu de suma (+) o resta (-) como prefixu a un númberu decimal (con o ensin espaciu).

Si un númberu decimal esta asignáu a una variable integral LibreOffice Basic arredondia la cantidá enriba o embaxo.

### Variables simples

Single variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is "!".

    Dim Variable!
    Dim Variable As Single

### Variables dobles

Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is "#".

    Dim Variable#
    Dim Variable As Double

### Variables de moneda

Les variables de moneda almacénense internamente como númberos de 64 bits (8 bytes) y amuésense como númberos con decimales fixos con 15 cifres non decimales y 4 decimales. El rangu de valores va de -922337203685477,5808 a +922337203685477,5807. Les variables de moneda úsense pa calcular valores de divises con alta precisión. El caráuter de declaración de tipu ye "@".

    Dim Variable@
    Dim Variable As Currency

### Literals for integers

Numbers can be encoded using octal and hexadecimal forms.

      xi = &o13 '    8 + 3
      ci = &h65 ' 6*16 + 5
      MAX_Integer =  &o77777 '  32767 = &h7FFF
      MIN_Integer = &o100000 ' -32768 = &h8000
      MAX_Long = &h7fffffff '  2147483647 = &o17777777777
      MIN_Long = &h80000000 ' -2147483648 = &o20000000000

### Variables de cadena

String variables can hold character strings with up to 2,147,483,648 characters. Each character is stored as the corresponding Unicode value. String variables are suitable for word processing within programs and for temporary storage of any non-printable character up to a maximum length of 2 Gbytes. The memory required for storing string variables depends on the number of characters in the variable. The type-declaration character is "$".

In BASIC String functions, the first character of the string has index 1.

    Dim Variable$
    Dim Variable As String

### Variables booleanes

Les variables lóxiques o booleanes namái almacenen ún d'estos dos valores: True (verdaderu) o False (falsu). Un númberu 0 evalúa en FALSE, cualesquier otru númberu evalúa en TRUE.

    Dim Variable As Boolean

### Variables de fecha

Les variables de fecha namái puen contener valores de fecha y hora almacenaos nun formatu internu. Los valores asignaos a les variables de fecha con Dateserial, Datevalue, Timeserial o Timevalue conviértense automáticamente al formatu internu. Les variables de fecha convertir en númberos normales por aciu les funciones Día, Mes y Añu o bien Hora, Minutos y Segundu. El formatu internu dexa una comparanza de valores de fecha/hora calculando la diferencia ente dos númberos. Estes variables namái puen declarase cola pallabra clave Date.

    Dim Variable As Date

### Literals for Dates

Date literals allow to specify unambiguous date variables that are independent from the current language. Literals are enclosed between hash signs #. Possible formats are:

- #yyyy-mm-dd#

- #mm/dd/yyyy#

      start_date = #12/30/1899# ' = 1
      dob = #2010-09-28#

## La triba Variant

Variables declared as Variant can handle any data type. This means that the actual data type is defined during runtime as a value is assigned to the variable.

There are three main ways to create a Variant variable, as shown below:

      Dim varA            ' The type is not specified, hence the variable is a Variant
      Dim varB as Variant ' The variable is explicitly declared as a Variant
      varC = "abc"        ' Previously undeclared variables are treated as Variants

The example below uses the TypeName function to show how the type of a Variant variable changes upon assignment.

      Dim myVar As Variant
      MsgBox TypeName(myVar) ' Empty
      myVar = "Hello!"
      MsgBox TypeName(myVar) ' String
      myVar = 10
      MsgBox TypeName(myVar) ' Integer

A Variant variable is initialized with the Empty special data type. You can use the IsEmpty function to test if a variable is an Empty Variant.

You can also use the keyword Any to declare a variable as a Variant. However, Any is deprecated and is available for backward compatibility.

Arguments with type Variant or Any passed in function calls are not checked for their types.

      Dim myVar As Any ' Variable "myVar" is a Variant

## Valores iniciales de les variables

En cuanto declárase la variable, ésta toma automáticamente el valor "Null" (nulu). Tenga en cuenta les convenciones siguientes:

A les variables Numbériques asígnase-yos automáticamente el valor "0" en cuanto declárense.

A les variables de fecha asígnase-yos el valor 0 internamente; qu'equival a convertir el valor a "0" cola función Día, Mes, Añu o Hora, Minutu, Segundu.

A les variables de cadena asígnase-yos una cadena balera ("") cuando se declaren.

## Matrices

LibreOffice Basic estrema matrices d'una o delles dimensiones, definíes por un tipu de variables especificáu. Les matrices son convenientes pa editar llistes y tables nos programes. Pue aportase a los elementos individuales de les matrices utilizando un índiz numbéricu.

Les matrices tienen de declarase cola instrucción Dim. Hai delles maneres de definir el rangu d'índices d'una matriz:

        Dim Text$(20)       '21 elementos numberaos de 0 a 20'
        Dim Text$(5,4)      '30 elements (a matrix of 6 x 5 elements)'
        Dim Text$(5 To 25)  '21 elements numbered from 5 to 25'
        Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'

El rangu del índiz pue incluyir númberos positivos y negativos.

## Constantes

Les constantes tienen un valor fixu. Namái se definen una vegada nel programa y nun puen volvese a definir más palantre:

    Const ConstName=Expression

Temes rellacionaos

Basic Constants

Dim Statement