Référence du Language - Les Datatypes

Il n'y a dans AutoIt qu'un type de donnée appelé Variable.  Une variable 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.  For example, Par exemple, si vous essayez de multiplier deux variables elles seront traitées comme des nombres, si vous essayez d'enchaî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 assembler les chaînes)

 

Si une chaîne de caractères est utilisé comme un nombre, un appel implicite à la fonction Number() est effectuer. 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 contient une chaîne vide "", il sera supposé qu'elle est égale à Faux (Voir ci-dessous).
Par exemple :

    NOT "" est égal au Booléen Vrai.

 

Les nombres

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 entier (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 (Lorsque vous utilisez la notation hexadécimale, seuls les nombres 32bit sont valides). 

 

Les chaîne de caractères

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 guillemets simples 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 grand 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().

 

Les Booléens

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 :
$Booleen1 = true
$Nombre1 = 100
$Nombre2 = $Booleen1 + $Nombre1

$Nombre2 aura pour résultat la valeur numerique 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:
$Booleen1 = True
$Chaine1 = "Le test est : "
$Chaine2=$Chaine1 & $Booleen1

$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

Les binaires (Binary) peuvent contenir n'importe quelle valeur de byte. Ils sont convertit en hexadecimal lorsqu'ils sont stocker dans une variable chaînes. Exemple:
$bin = Binary("abc")
$str = String($bin)    ; "0x616263"


Les Pointeurs

Les Pointeur (Pointer) contiennent une adresse mémoire qui est 32bits ou 64bits selon si vous utilisez la version 32bit ou 64 bit de AutoIt. Ils sont convertit en hexadecimal lorsqu'ils sont stocker dans une variable chaînes. Le handles (HWnd) de fenêtre retourné par WinGetHandle est de type pointeur.

 

Type de données (Datatypes) et Etendue

Le tableau suivant montre les varaibles interne datatypes et leurs étendue.

Sous type de donnée Etendue et Notes
Int32 Un nombre entier signé de 32bit.
Int64 Un nombre entier signé de 64bit
Double Un nombre à virgule flottante double-precision.
String Peut contenir des chaînes jusqu'à 2147483647 caractères.
Binary Donnée Binaire, peut contenir jusqu'a 2147483647 bytes.
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 convertit automatiquement - ces fonctions sont documentées sur leurs exigences.