Il n'y a dans AutoIt qu'un type de donnée appelé Variant. Un 'variant' peut contenir des nombres ou des chaînes de caractères, et décide de la façon de s'en servir en fonction de la situation. Par exemple, si vous essayez de multiplier deux variables elles seront traitées comme des nombres, si vous essayez de concaténer deux variables elles seront traitées comme des chaînes de caractères.
Voici quelques exemples:
10 * 20 est égal au nombre 200 (* est utilisé pour multiplier deux nombres)
10 * "20" est égal au nombre 200
"10" * "20" est égal au nombre 200
10 & 20 est égal à la chaîne "1020" (& est utilisé pour concaténer les chaînes)
Si une chaîne de caractères est utilisé comme un nombre, un appel implicite à la fonction Number() est effectué. Si elle ne contient pas un nombre valide, il sera supposé qu'elle est égale à 0. Par exemple :
10 * "fgh" est égal au nombre 0.
Si une chaîne est utilisée comme booléen et qu'elle est vide, il sera supposé qu'elle est égale à False (Voir ci-dessous). Par exemple,
Not "" est égal au Booléen True.
Les nombres peuvent être des décimaux standards tels que 2, 4.566, ou -7.
La notation scientifique est aussi supportée; par conséquent, vous pouvez écrire 1.5e3 au lieu de 1500.
Les nombres entiers (Tous les nombres) peuvent aussi être représentés sous forme hexadécimale en mettant devant le nombre entier 0x comme dans 0x409 ou 0x4fff
Les chaînes sont entourés de guillemets comme "ceci". Si vous voulez qu'une chaîne contienne des guillemets, mettez en deux comme ceci:
"Voici un ""guillemet double"" - ok?"
Vous pouvez aussi utiliser des apostrophes comme 'ceci' et 'voici un ''apostrophe simple'' - ok?'
Vous pouvez mélanger les types de guillemets pour travailler plus aisément et pour éviter de dédoubler vos guillemets pour obtenir ce que vous voulez. Par exemple, si vous voulez un certain nombre de double guillemets dans vos chaînes alors vous devriez utiliser l'apostrophe pour les déclarer :
'Cette "phrase" contient "beaucoup" de "guillemets double" n'est ce pas?'
est plus simple que:
"Cette ""phrase"" contient ""beaucoup"" de ""guillemets double"" n'est ce pas?"
Lorsqu'elles sont évaluées, les chaînes peuvent contenir des substitutions de variables Env ou de variables Var en fonction de la définition de la fonction Opt().
Toutes les chaînes AutoIt utilise l'encodage UTF-16 (plus précisemment UCS-2).
Les booléens sont des valeurs logiques. Seuls 2 valeurs booléennes existent : Vrai (True) et Faux (False).
Elles peuvent être attribuées à des variables, avec les opérateurs booléens AND, OR et NOT.
Exemples:
$Booleen1 = True
$Booleen2 = False
$Booleen3 = $Booleen1 AND $Booleen2
$Booleen3 aura pour résultat False
$Booleen1 = False
$Booleen2 = Not $booleen1
$Boolean2 aura pour résultat True
Si des valeurs booléennes sont utilisées avec des nombres, la règle suivante s'applique :
Une valeur égale à 0 correspondra à un booléen False (Faux)
Toute autre valeur sera égale au booléen True (Vrai)
Exemple:
$Nombre1 = 0
$Booleen1 = True
$Booleen2 = $Nombre1 and $Booleen1
$Booleen2 aura pour résultat False
Si vous utilisez des valeurs arithmétiques avec les valeurs booleénnes (ce qui n'est pas recommandé!), les règles suivantes s'appliquent :
Un booléen True sera converti dans une valeur numérique 1
Un booléen False sera converti dans une valeur numérique 0
Exemple:
$fBooleen1 = true
$iNombre1 = 100
$iNombre2 = $fBooleen1 + $iNombre1
$iNombre2 aura pour résultat la valeur numérique 101
Si vous utilisez des chaînes avec des valeurs booléennes, elles seront converties comme ceci:
Un booléen True sera converti en chaîne "True"
Un booléen False sera converti en chaîne "False"
Exemple:
$fBooleen1 = True
$sChaine1 = "Le test est : "
$sChaine2=$sChaine1 & $fBooleen1
$Chaine2 aura pour résultat la valeur "Le test est : True"
D'une autre manière, lorsque vous utilisez la comparaison de chaînes avec des valeurs Booléennes, les règles suivantes s'appliquent:
Seule une chaîne vide ("") sera un booléen False
Toute autre valeur de chaîne (Y compris une chaîne égala à "0") sera un booléen True
Les binaires (Binary) peuvent contenir n'importe quelle valeur d'octet. Ils sont convertis en hexadécimal lorsqu'ils sont stocker dans une variable chaînes. Exemple:
$bin = Binary("abc")
$str = String($bin) ; "0x616263"
Un pointeur (Pointer) contient une adresse mémoire sur 32bits ou 64bits selon que vous utilisiez la version 32-bit ou 64-bit de AutoIt. Il est converti en hexadécimal lorsqu'il est stocké dans une variable chaîne. Le handle (HWnd) de fenêtre retourné par WinGetHandle est de type pointeur.
Le tableau suivant montre les datatypes 'variant' internes et leurs plages de valeur.
Data Sub-type | Intervalles et Notes |
---|---|
Int32 | Un entier signé 32bit. |
Int64 | Un entier signé 64bit |
Double | Un nombre en virgule flottante, double-précision. |
String | Peut contenir une chaîne d'au plus 2147483647 caractères. |
Binary | Données binaires qui peut contenir au plus 2147483647 octets. |
Pointer | Un pointeur d'adresse mémoire 32bit ou 64bit selon la version de AutoIt utilisée. |
Certaines fonctions dans AutoIt ne fonctionnent qu'avec des nombres 32-bit (Exemple : BitAND) et sont convertis automatiquement - ces fonctions sont documentées dans l'aide.