Utilisation des variables

From LibreOffice Help
Jump to: navigation, search

Cette rubrique décrit l'utilisation de base des variables dans LibreOffice Basic.

Conventions de nommage des variables

Un nom de variable peut comprendre jusqu'à 255 caractères. Le premier de ces caractères doit être une lettre entre A et Z ou a et z. Les chiffres peuvent également être utilisés dans ces noms, mais les signes de ponctuation et les caractères spéciaux ne sont pas autorisés, sauf le caractère de soulignage ("_"). Dans LibreOffice Basic, les identificateurs de variables ne respectent pas la casse. Les noms de variables peuvent contenir des espaces mais doivent, dans ce cas, être placés entre crochets.

Exemples d'identificateurs de variables :

MonNumero=5 Correct
MonNumero5=15 Correct
MonNumero_5=20 Correct
Mon Numero=20 Incorrect, toute variable comprenant un espace devant être placée entre crochets
[Mon Numero]=12 Correct
MonNuméro=25 Incorrect, caractères spéciaux non autorisés
5MonNumero=12 Incorrect, une variable ne devant jamais commencer par un chiffre
Numero,Mon=12 Incorrect, signes de ponctuation non autorisés

Déclaration des variables

Dans LibreOffice Basic, il n'est pas nécessaire de déclarer les variables explicitement. Une variable peut être déclarée à l'aide de l'instruction Dim. Vous pouvez déclarer plusieurs variables à la fois en séparant leurs noms à l'aide d'une virgule. Pour définir le type de variable, utilisez soit un caractère de déclaration de type après le nom, soit le mot-clé approprié.

Exemples de déclarations de variables :

DIM a$ Déclare la variable "a" en tant que chaîne de caractères
DIM a As String Déclare la variable "a" en tant que chaîne de caractères
DIM a$, b As Integer Déclare une variable en tant que chaîne de caractères (String) et une autre en tant que nombre entier (Integer)
DIM c As Boolean Déclare c en tant que variable booléenne (qui peut prendre les valeurs VRAI ou FAUX)

Il est très important, lorsque vous déclarez des variables, de toujours utiliser le caractère de déclaration de type, même s'il a été utilisé dans la déclaration à la place d'un mot-clé. Les instructions suivantes sont donc non valides :

DIM a$ Déclare "a" en tant que chaîne de caractères
a="ChaîneTest" Déclaration de type manquante : "a$="
Warning.png Après avoir déclaré une variable comme étant d'un certain type, vous ne pouvez pas la déclarer à nouveau sous le même nom comme étant d'un type différent !

Déclarations de variables forcées

Pour forcer la déclaration de variables, utilisez la commande suivante :

OPTION EXPLICIT

L'instruction Option Explicit doit constituer la première ligne du module, avant le premier élément SUB. Généralement, seules les matrices doivent être déclarées explicitement. Toutes les autres variables sont déclarées en fonction du caractère de déclaration de type ou, en cas d'omission, en tant que type par défaut Single (simple).

Types de variables

LibreOffice Basic supporte quatre classes de variables :

  • Les variables numériques peuvent contenir des valeurs numériques. Certaines variables servent à stocker de petits ou de grands nombres et d'autres sont utilisées pour des nombres à virgule flottante ou des fractions.
  • Les variables de type chaîne contiennent des chaînes de caractères.
  • Les variables logiques contiennent soit la valeur TRUE (vrai) soit la valeur FALSE (faux).
  • Les variables de type objet peuvent stocker des objets de différents types, comme des tables et des documents à l'intérieur d'un document.

Variables entières

Les variables entières sont comprises entre -32 768 et 32 767. Si vous assignez une valeur à virgule flottante à une variable entière, les décimales sont arrondies au nombre entier suivant. Les variables entières sont calculées rapidement dans les procédures et peuvent être utilisées pour les variables de comptage dans les boucles. Une variable entière n'occupe que deux octets de mémoire. "%" constitue le caractère de déclaration de ce type.

Dim Variable%

Dim Variable As Integer

Variables entières longues

Les variables entières longues sont comprises entre -2 147 483 648 et 2 147 483 647. Si vous assignez une valeur à virgule flottante à une telle variable, les décimales sont arrondies au nombre entier suivant. Les variables entières longues sont calculées rapidement dans les procédures et peuvent être utilisées pour les variables de comptage dans les boucles pour les valeurs importantes. Une variable entière longue occupe quatre octets de mémoire. "&" constitue le caractère de déclaration de ce type.

Dim Variable&

Dim Variable as Long

Variables décimales

Les variables décimales peuvent contenir des nombres positifs ou négatifs, ou zéro. La précision est de 29 chiffres.

Il est possible d'utiliser plus (+) ou moins (-) comme préfixes aux nombres décimaux (avec ou sans espaces).

Si un nombre décimal est assigné à  une variable nombre entier, %PRONDUCTNAME Basic arrondira la valeur vers le haut ou vers le bas.

Variables simples

Les variables simples peuvent prendre des valeurs positives ou négatives comprises entre 3,402823 x 10E38 et 1,401298 x 10E-45. Ce sont des variables à virgule flottante dans lesquelles la précision décimale diminue à mesure que la partie non décimale du nombre augmente. Les variables simples peuvent être utilisées pour les calculs mathématiques de précision moyenne. Ces calculs sont plus longs qu'avec des variables entières, mais plus rapides qu'avec des variables doubles. Une variable simple occupe quatre octets de mémoire. ! constitue le caractère de déclaration de ce type.

Dim Variable!

Dim Variable as Single

Variables doubles

Les variables doubles peuvent prendre des valeurs positives ou négatives comprises entre 1,79769313486232 x 10E308 et 4,94065645841247 x 10E-324. Ce sont des variables à virgule flottante dans lesquelles la précision décimale diminue à mesure que la partie non décimale du nombre augmente. Les variables doubles peuvent être utilisées pour des calculs précis. Ces calculs sont plus longs qu'avec les variables simples. Une variable double occupe huit octets de mémoire. # constitue le caractère de déclaration de ce type.

Dim Variable#

Dim Variable As Double

Variables monétaires

Les variables monétaires sont stockées en interne sous forme de nombres de 64 bits (huit octets) et s'affichent sous forme de nombres décimaux fixes comportant 15 valeurs non décimales et 4 décimales. Leurs valeurs sont comprises entre -922 337 203 685 477,5808 et +922 337 203 685 477,5807. Les variables monétaires servent à calculer des valeurs monétaires avec une grande précision. @ constitue le caractère de déclaration de ce type.

Dim Variable@

Dim Variable As Currency

Variables de chaîne

Les variables de chaîne peuvent comporter des chaînes de caractères allant jusqu'à 65 535 caractères. Chaque caractère est stocké sous la valeur Unicode correspondante. Les variables de chaîne peuvent être utilisées pour le traitement de texte à l'intérieur de programmes et pour le stockage temporaire de tout caractère non imprimable d'une longueur maximale de 64 kilo-octets. La mémoire nécessaire au stockage des variables de chaîne dépend du nombre de caractères de celles-ci. "$" constitue le caractère de déclaration de ce type.

Dim Variable$

Dim Variable As String

Variables logiques

Les variables logiques ne stockent qu'une seule des deux valeurs suivantes : VRAI ou FAUX. 0 correspond à FAUX ; toute autre valeur correspond à VRAI.

Dim Variable As Boolean

Variables de date

Les variables de date ne peuvent contenir que des valeurs de date et d'heure stockées dans un format interne. Les valeurs assignées aux variables de date par Dateserial, Datevalue, Timeserial oo Timevalue sont automatiquement converties au format interne. Les variables de date sont converties en nombres normaux à l'aide de la fonction Day, Month, Year, Hour, Minute ou Second. Le format interne permet de comparer des valeurs date/heure par calcul de la différence entre deux nombres. Ces variables ne peuvent être déclarées qu'avec le mot-clé Date.

Dim Variable As Date

Valeurs initiales des variables

Dès que la variable est déclarée, elle est automatiquement définie à la valeur "Null". Notez les conventions suivantes :

Les variables numériques obtiennent automatiquement la valeur "0" dès qu'elles sont déclarées.

La valeur 0 est assignée en interne aux variables de date, ce qui revient à convertir la valeur 0 avec la fonction Day, Month, Year, Hour, Minute ou Second.

Les variables de chaîne obtiennent un espace vide ("") lorsqu'elles sont déclarées.

Matrices

LibreOffice Basic reconnaît les matrices unidimensionnelles ou multidimensionnelles définies par un type de variable spécifié. Les matrices peuvent être utilisées pour l'édition de listes et de tables dans les programmes. Les différents éléments d'une matrice peuvent être désignés par un index numérique.

Les matrices doivent être déclarées avec l'instruction Dim. Il existe plusieurs façons de définir la plage d'index d'une matrice :

DIM text$(20) 21 éléments numérotés de 0 à 20
DIM text$(5,4) 30 éléments (matrice de 6 x 5 éléments)
DIM text$(5 to 25) 21 éléments numérotés de 5 à 25
DIM text$(- 15 to 5) 21 éléments (0 compris) numérotés de - 15 à 5

La plage d'index peut comprendre des nombres positifs comme des nombres négatifs.

Constantes

Les constantes ont une valeur fixe. Elles ne sont définies qu'une seule fois dans le programme et ne peuvent pas être redéfinies ultérieurement :

CONST ConstName=Expression