Tipuri de date

In AutoIt exista un singur tip de date numit Variant, care poate contine date numerice sau siruri de caractere(string). In functie de situatie se decide daca contine date numerice sau un string. De exemplu daca incercati sa inmultiti doua variabile (implicit tipul este Variant) ele vor fi tratate ca date numerice; daca incercati sa le concatenati vor fi tratate ca string-uri.

Exemple:

5 * 2 = 10 (numar)

5 * “2″ = 10 (numar)

“5″ * “2″ = 10 (numar)

5 & 2 = “52″ (string)

 

Nota:

Simbolul * este operatorul pentru operatia de inmultire si & este operator pentru operatia de concatenare. Pentru moment este suficient daca retineti aceste lucruri, mai multe despre operatori vom invata intr-o lectie viitoare.

 

Daca un string este folosit ca numar se efectueaza un apel al functiei Number(). Daca acel string nu contine un numar valid, se presupune ca este egal cu 0.

Exemplu:

6 * “Andy” = 0

 

Daca un string este folosit ca valoare booleana si este un empty string (“”), va fi evaluat ca fiind False.

Exemplu:

Not “” = True

Nota: empty string este un sir care nu contine niciun caracter

 

Numerele:

Pot fi numere zecimale standard ca 245, 3.61 sau -4. De asemenea este suportata si reprezentarea stiintifica, astfel in loc de 2600 puteti scrie 2.6e3. Un integer (numar intreg) poate fi scris de asemenea si in sistemul hexazecimal, reprezentarea hexazecimala fiind precedata de notatia 0x, ca si in 0×173 (cand este folosita reprezentarea hexazecimala doar numerele pe 32 biti sunt valide).

 

Siruri de caractere (strings):

Un sir de caractere totdeauna este marginit de ghilimele simple sau duble. Daca doriti un string care sa contina ghilimele duble, folositi ghilimelele de doua ori.

Exemple:

 ”Acesta este un sir

Cuvantul “”test“” este scris intre ghilimele

 

Pentru a evita folosirea in exces a ghilimelelor se pot combina ghilimele simple cu cele duble ca in exemplul de mai jos.

Exemplu:

Cuvantul test este scris intre ghilimele

 

Nota: cand sunt evaluate, string-urile pot contine referinte Env, substitutia se face in acord cu definitia functiei Opt().

 

Valori logice (boolean values)

Exista doar doua valori True sau False si pot fi folosite in evaluarea expresiilor cu operatorii logici and, or sau not.

Exemplu:

$var1 = true

$var2 = false

$var3 = $var1 and $var2  ($var3 va fi evaluat ca false in urma operatiei logice)

 

Daca valorile logice sunt folosite impreuna cu date numerice, valoarea numerica 0 va fi egala cu false, orice alta valoare numerica va fi egala cu true.

Exemplu:

$var1 = 0

$var2 = true

$var3 = $var1 and $var2  ($var3 va fi evaluat ca false)

 

Daca folositi valorile logice in operatii aritmetice (ceea ce nu este recomandat!!!), valoarea logica true va fi evaluata ca valoare numerica 1 si valoarea logica false va fi evaluata ca valoare numerica 0.

Exemplu:

$var1 = true

$var2 = 8

$var3 = $var1 + $var2    ($var3 va fi evaluat ca valoare numerica egala cu 9)

 

Daca folositi valorile logice cu string-urile, valoarea logica true va fi string-ul “true” iar valoarea logica false va fi string-ul “false”.

Daca comparati un string cu o valoare logica, un empty string va fi egal cu false si orice alt string va fi egal cu true.

 

Siruri binare:

Tipul binar poate stoca orice valori ale bitilor, care sunt convertiti in reprezentare hexazecimala cand sunt stocati in variabile de tip string.

Exemplu:

$binary = Binary(“Andy”)

$string = String($binary)    variabila $string va fi egala cu “0x416E6479″

 

Pointeri:

Tipul pointer stocheaza adrese de memorie, 32 bit sau 64 bit, in functie de versiunea AutoIt folosita. Datele de tip pointer sunt convertite in reprezentari hexazecimale cand sunt stocate in string-uri. Handle-urile ferestrelor (tip hwnd) returnate de functii precum WinGetHandle sunt pointeri.

 

Tipurile de date si intervalele:

Tip de date Interval
Int32 Numere intregi pe 32 biti
Int64 Numere intregi pe 64 biti
Double Numar in virgula mobila cu precizie dubla
String Siruri de caractere, pana la 2147483647 caractere
Binary Date binare, pot contine pana la 2147483647 bytes
Pointer Adresa de memorie (32-bit sau 64-bit)

* Pentru orice intrebari sau nelamuriri legate de curs sau limbajul AutoIt accesati sectiunea AutoIt a forumului SkullBox sau platforma de suport tehnic NetHelp.