IBM Lotus Symphony


Instruction Dim [Exécution]

Déclare une variable ou une matrice.

Si les variables sont séparées par des virgules (par exemple, DIM sPar1, sPar2, sPar3 AS STRING), seule les variables de type variante peuvent être définies. Utilisez une ligne de définition pour chaque variable.

DIM sPar1 AS STRING

DIM sPar2 AS STRING

DIM sPar3 AS STRING

Dim déclare les variables locales dans des sous-routines. Les variables globales sont déclarées avec l'instruction PUBLIC ou PRIVATE.

Syntaxe :

[ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

Paramètres :

VarName : tout nom de variable ou de matrice.

Start, End : valeurs numériques ou constantes définissant le nombre d'éléments (NumberElements=(end-start)+1) et la plage d'index.

Si ReDim est appliquée au niveau de la procédure, les paramètres Start et End peuvent être des expressions numériques.

VarType : mot-clé déclarant le type de données d'une variable.

Keyword : type de variable

Bool : variable booléenne (True, False)

Currency : variable au format monétaire (monnaie avec 4 décimales)

Date : variable de date

Double : variable à virgule flottante double précision (1 79769313486232 x 10E308 - 4 94065645841247 x 10E-324)

Integer : variable de type nombre entier (-32768 - 32767)

Long : variable de type nombre entier long (-2.147.483.648 - 2.147.483.647)

Object : variable d'objet (Remarque : cette variable peut uniquement être définie par la suite avec le mot-clé Set).

Single : variable à virgule flottante simple précision (3,402823 x 10E38 - 1,401298 x 10E-45).

String : variable de chaîne comprenant au maximum 64 000 caractères ASCII.

[Variant] : variable de type variante (contient tous les types spécifiés dans la définition). Si aucun mot-clé n'est spécifié, les variables sont automatiquement définies comme étant de type variante, sauf si une instruction de DefBool à DefVar est utilisée.

Dans Lotus Symphony Basic, vous n'avez pas besoin de déclarer explicitement les variables. Toutefois, vous devez déclarer une matrice avant de pouvoir les utiliser. Vous pouvez déclarer une variable avec l'instruction Dim en utilisant des virgules pour séparer les différentes déclarations. Pour déclarer un type de variable, saisissez le caractère de déclaration de type après son nom ou utilisez le mot-clé approprié.

Lotus Symphony Basic supporte les matrices unidimensionnelles ou mutidimensionnelles définies par un type de variable spécifié. Les matrices peuvent être utilisées si le programme comprend des listes ou des tables à éditer. L'avantage des matrices est qu'elles permettent d'appeler des éléments individuels à partir d'index, lesquels peuvent être formulés comme expressions numériques ou variables.

Les matrices sont déclarées avec l'instruction Dim. Il existe deux méthodes pour définir la plage d'index :

DIM text(20) as String REM 21 éléments numérotés de 0 à 20

DIM text(5 to 25) as String REM 21 éléments numérotés de 5 à 25

DIM text(-15 to 5) as String REM 21 éléments (0 compris)

REM Numérotés de -15 à 5

Zone de données en deux dimensions

DIM text(20,2) as String REM 63 éléments ; de 0 à 20 niveau 1, de 0 à 20 niveau 2 et de 0 à 20 niveau 3.

Vous pouvez déclarer un type de matrice comme dynamique si une instruction ReDim définit le nombre de dimensions dans la sous-routine ou la fonction contenant la matrice. En règle générale, la dimension de la matrice ne peut être définie qu'une seule fois et vous ne pouvez pas la modifier. Dans une sous-routine, vous pouvez déclarer une matrice avec l'instruction ReDim. Vous ne pouvez définir les dimensions qu'avec des expressions numériques. Cela garantit que les zones ne dépassent pas la taille nécessaire.

Exemple :

Sub ExampleDim1

Dim sVar As String

Dim iVar As Integer

sVar = "Lotus Symphony"

End Sub

Sub ExampleDim2

REM Zone de données en deux dimensions

Dim stext(20,2) as String

Const sDim as String = " Dimension :"

for i = 0 to 20

for ii = 0 to 2

stext(i,ii) = str(i) & sDim & str(ii)

next ii

next i

for i = 0 to 20

for ii = 0 to 2

msgbox stext(i,ii)

next ii

next i

End Sub


Commentaires en retour sur le produit | Documentation complémentaire | Marques