3.2.6. Les types de données
Les types
prédéfinis
Boolean
Les variables de type « Boolean » sont
stockées sous la forme de nombres de 16 bits (2 octets), mais elles ne
peuvent avoir pour valeur que True ou False.
Elles s'affichent sous la forme True et False (avec l'instruction
Print) ou #TRUE# et #FALSE# (avec l'instruction Write #). On utilise
les mots clés True et False pour faire passer d'un
état à l'autre des variables de type « Boolean
».
Lorsque d'autres types de données numériques
sont convertis en valeurs de type Boolean, 0 devient False et
toutes les autres valeurs deviennent True. Lorsque des valeurs de type
Boolean sont converties en d'autres types de données,
False devient 0 et True devient -1.
Byte
Les variables de type « Byte » sont
stockées sous la forme d'un nombre de 8 bits (1 octet unique), non
signé, compris entre 0 et 255. Le type de données « Byte
» est utile pour le stockage d' entiers de petite taille.
Currency
Les variables de type « Currency » sont
stockées sous la forme de nombres de 64 bits (8 octets) au format
entier, avec un décalage de 10 000 afin d'obtenir un nombre à
virgule fixe comprenant 15 chiffres à gauche du séparateur
décimal et 4 chiffres à droite.
Cette représentation offre une plage comprise entre
-922 337 203 685 477,5808 et 922 337 203 685 477,5807. Le caractère de
déclaration de type pour les variables de type « Currency
» est le signe @. Le type de données « Currency
» est utile pour les calculs monétaires et pour les calculs
à virgule fixe dans lesquels la précision revêt une
importance particulière.
Date
Les variables de type « Date » sont
stockées sous la forme de nombres à virgule flottante de 64 bits
(8 octets) IEEE représentant des dates comprises entre le 1er janvier
100 et le 31 décembre 9999, et des heures allant de 0:00:00 à
23:59:59. Toute valeur de littéral de date peut être
attribuée à une variable de type « Date ». Les
littéraux date doivent être délimités par le signe
#, par exemple #January 1, 1993# ou #1 Jan 93#.
Les variables de type « Date » affichent
les dates au format de date abrégé reconnu par un ordinateur. Les
heures s'affichent au format horaire (plage de 12 ou 24 heures) défini
dans un ordinateur.
Lorsque d'autres types de données numériques
sont convertis en données de type « Date », les valeurs
situées à gauche du séparateur décimal
représentent la date, tandis que celles situées à droite
correspondent à l'heure. Minuit est représenté par 0 et
midi par 0,5. Les nombres entiers négatifs représentent des dates
antérieures au 30 décembre 1899.
Decimal
Les variables de type « Decimal » sont
stockées sous la forme d'entiers de 96 bits (12 octets), non
signés, décalés d'une puissance de 10 variable. Le facteur
de décalage (puissance de 10), qui définit le nombre de chiffres
situés à droite du séparateur décimal, est compris
entre 0 et 28. Avec un décalage de 0 (pas de décimales), la
valeur maximale est +/- 79 228 162 514 264 337 593 543 950 335. Avec 28
décimales, la valeur maximale est +/- 7,9228162514264337593543950335 et
la valeur minimale différente de zéro est +/-
0,0000000000000000000000000001.
Pour le moment, le type de données «
Decimal » ne peut être utilisé qu'avec une
donnée de type « Variant ». En d'autres termes, il est
impossible d'attribuer à une variable le type « Decimal
». Nous pouvons en revanche créer une variable de type «
Variant » dont le sous-type est « Decimal » à
l'aide de la fonction CDec.
Double
Les variables de type « Double » (à
virgule flottante en double précision) sont stockées sous la
forme de nombres à virgule flottante de 64 bits (8 octets) IEEE dont la
valeur est comprise entre -1,79769313486232E308 et -4,94065645841247E-324 pour
les nombres négatifs et entre 4,94065645841247E-324 et
1,79769313486232E308 pour les positifs. Le caractère de
déclaration de type pour une variable de type « Double
» est le signe #.
Integer
Les variables de type « Integer » sont
stockées sous la forme de nombres de 16 bits (2 octets) dont la valeur
est comprise entre -32 768 et 32 767. Le caractère de déclaration
de type pour les variables de type « Integer » est le signe
%.
Les variables de type « Integer »
permettent également de représenter des valeurs
énumérées. Celles-ci peuvent contenir un ensemble fini
d'entiers uniques possédant tous une signification particulière
dans le contexte où ils sont utilisés. Elles permettent
d'opérer facilement une sélection parmi un nombre connu de choix,
du type noir = 0, blanc = 1, etc. Il est conseillé de définir des
constantes pour chaque valeur énumérée via l'instruction
Const.
Long
Les variables de type « Long » (entier
long) sont stockées sous la forme de nombres signés de 32 bits (4
octets) dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647. Le
caractère de déclaration de type pour les variables de type
« Long » est le signe &.
Object
Les variables de type « Object » sont
stockées sous la forme d'adresses 32 bits (4 octets) qui font
référence à des objets. L'instruction Set
permet d'affecter une référence d'objet à une
variable déclarée comme « Object ».
Une variable déclarée comme «
Object » est suffisamment flexible pour contenir une
référence à n'importe quel type d'objet, mais la liaison
à l'objet désigné par la variable est effectuée au
moment de l'exécution. Pour obtenir une liaison au moment de la
compilation, on attribue la référence d'objet à une
variable déclarée avec un nom de classe spécifique.
Single
Les variables de type « Single » (à
virgule flottante en simple précision) sont stockées sous la
forme de nombres à virgule flottante de 32 bits (4 octets) IEEE dont la
valeur est comprise entre -3,402823E38 et -1,401298E-45 pour les nombres
négatifs et entre 1,401298E-45 et 3,402823E38 pour les positifs. Le
caractère de déclaration de type pour les variables de type
« Single » est le point d'exclamation
(!).
String
Il existe deux types de chaînes : les chaînes de
longueur variable et les chaînes de longueur fixe. Les chaînes de
longueur variable peuvent contenir environ 2 milliards (2^31) de
caractères.
Les chaînes de longueur fixe peuvent contenir de 1
à environ 64 Ko (2^16) de caractères.
Une chaîne de longueur fixe déclarée comme
Public ne peut être utilisée dans les
modules de classe. Les codes de caractères de type « String »
sont compris entre 0 et 255. Les 128 premiers caractères (0 à
127) du jeu de caractères correspondent aux lettres et symboles d'un
clavier américain standard. Ces 128 caractères sont identiques
à ceux du jeu de caractères ASCII.
Les 128 caractères suivants (128 à 255)
représentent des caractères spéciaux, comme les lettres de
certains alphabets, les accents, les symboles monétaires et les
fractions. Le caractère de déclaration de type pour les variables
de type String est le signe $.
Variant
« Variant » est le type de données
attribué à toutes les variables qui ne sont pas explicitement
déclarées comme étant d'un autre type (à l'aide
d'instructions telles que Dim, Private,
Public ou Static). Le type de données
« Variant » ne possède aucun caractère de
déclaration de type.
Variant est un type de données spécial
pouvant contenir des données de toutes sortes, à l'exception des
données de type « String » de longueur fixe et de
types définis par l'utilisateur. Une variable de type «
Variant » peut également contenir les valeurs
Empty, Error, Nothing et
Null. Nous pouvons déterminer la procédure de traitement
d'une donnée de type « Variant » à l'aide des
fonctions VarType et TypeName.
Les données numériques correspondent à
n'importe quel nombre entier ou réel dont la valeur est comprise entre
-1,797693134862315E308 et -4,94066E-324 pour les négatifs et entre
4,94066E- 324 et 1,797693134862315E308 pour les positifs. En
général, les données numériques de type «
Variant » conservent leur type de données original au sein de la
valeur de type « Variant ».
Par exemple, si nous attribuons une valeur de type «
Integer » à une donnée de type « Variant
», cette dernière sera ultérieurement traitée comme
une valeur de type « Integer ».
Cependant, si une opération arithmétique est
exécutée sur une donnée de type « Variant »
contenant une valeur de type « Byte », « Integer
», « Long » ou « Single » et si le résultat
excède la plage de valeurs du type de données, le résultat
se voit automatiquement affecté le type de données « Variant
» immédiatement supérieur. Une donnée de type «
Byte » est transformée en « Integer », une
donnée de type « Integer » est transformée en
« Long » et une donnée de type « Long » ou «
Single » en « Double ».
Une erreur se produit lorsque des variables de type «
Variant » contenant des données de type « Currency
», « Decimal » ou « Double » dépassent
leur plage de valeurs respective.
Le type de données « Variant » peut
remplacer un autre type de données lorsque vous recherchez plus de
souplesse dans le traitement de celles-ci. Si une variable de type «
Variant » contient des chiffres, il peut s'agir, selon le
contexte, de leur valeur réelle ou de leur représentation sous
forme de chaîne.
Exemple :
Dim MyVar As Variant
MyVar = 98052
Dans l'exemple précédent, MyVar
contient une représentation numérique,
c'est-à-dire la valeur réelle 98052.
Les opérateurs arithmétiques peuvent être
utilisés avec des variables de type « Variant » contenant des
valeurs numériques ou des chaînes de caractères pouvant
être interprétées comme des nombres. Si nous utilisons
l'opérateur + pour ajouter MyVar
à une autre donnée de type « Variant »
contenant un nombre ou à une variable de type numérique, nous
obtiendrons comme résultat une somme arithmétique.
La valeur Empty désigne une
variable de type « Variant » qui n'a pas été
initialisée. Une variable de type « Variant »
contenant la valeur Empty équivaut à
0 si elle est utilisée dans un contexte
numérique et à une chaîne de longueur nulle ("") dans un
contexte de chaînes.
Ne pas confondre Empty et
Null. La valeur Null indique que la variable
de type « Variant » ne contient intentionnellement aucune
donnée valide.
Dans une donnée de type « Variant », la
valeur Error permet d'indiquer qu'une condition
d'erreur s'est produite dans une procédure. Cependant, aucune gestion
d'erreur normale de niveau application n'a lieu dans ce cas. Le programmeur ou
l'application peuvent donc appliquer un certain traitement en fonction de la
valeur d'erreur. Les valeurs de type Error sont
créées par conversion de nombres réels à l'aide de
la fonction CVErr.
Les types définis par le
programmeur
Ces types de données sont définis à
l'aide de l'instruction Type. Les types de données
définis par l'utilisateur peuvent contenir un ou plusieurs
éléments d'un type de données, un tableau ou un type de
données précédemment défini par l'utilisateur.
Exemple :
Type MyType
MyName As String ' La variable de type
String contient un nom
MyBirthDate As Date ' La variable de
type Date contient une date
de
naissance
MySex As Integer ' La variable de type
Integer contient le sexe (0 féminin, 1 masculin)
End Type
|