GarajScript - Functii standard
Standard limbajul de script include functii pentru : conversii de date,
generarea de numere aleatoare, matematica, retea ( folosind winsock ),
timp, vectori si fisiere. Parametrii pentru functii sunt pasati folosind
stiva, adaugati exact in ordinea indicata.
In categoria functiilor pentru conversie intra:
to_string
parametrii : variabila_de_convertit
returneaza : variabila_convertita
to_int
parametrii : variabila_de_convertit
returneaza : variabila_convertita
to_float
parametrii : variabila_de_convertit
returneaza : variabila_convertita
Aceste functii sunt necesare atunci cand se doreste concatenarea unui numar cu
un string, sau adunarea unui string la un numar.
Pentru generarea numerelor aleatoare se foloseste functia:
rand
parametrii : limita superioara interval (0..max), de tip intreg
returneaza : numar aleatoriu
Functiile matematice standard sunt:
sqrt - radical de ordinul 2
parametrii : numar intreg sau float pozitiv
returneaza : rezultat
floor - partea intreaga
parametrii : numar intreg sau float
returneaza : rezultat
ceil - partea intreaga + 1
parametrii : numar intreg sau float
returneaza : rezultat
log - logaritm natural
parametrii : numar intreg sau float pozitiv
returneaza : rezultat
log10 - logaritm in baza 10
parametrii : numar intreg sau float pozitiv
returneaza : rezultat
pow - a la puterea b
parametrii : baza, exponent
returneaza : rezultat
Interfata cu reteaua este realizata folosind winsock. Inainte de a crea
un socket trebuie mai intai initializat winsock-ul. Va recomanda sa cititi
un articol despre winsock inainte de a folosi aceste functii:
init_winsock - initializare Winsock
parametrii : -
returneaza : 1 sau 0
close_winsock - inchidere Winsock
parametrii : -
returneaza : 1 sau 0
create_socket - creeaza un socket pentru TCP-IP
parametrii : -
returneaza : SOCKET sau 0
close_socket - inchide un socket
parametrii : SOCKET
returneaza : -
connect_host - conecteaza socket la IP sau host_name
parametrii : SOCKET, host_or_ip, port_number
returneaza : 1 sau 0
listen_port - seteaza socket pentru a asculta un port
parametrii : SOCKET, numar_port
returneaza : 1 sau 0
accept_connection - asteapta pentru o conexiune
parametrii : SOCKET
returneaza : SOCKET sau 0
receive - receptioneaza din retea
parametrii : SOCKET, lungime_mesaj
returneaza : bin_var sau 0
send - trimite mesaj
parametrii : SOCKET, mesaj
returneaza : 1 sau 0
Pentru cronometrari poate fi folosita functia :
get_time - timpul trecut de la bootare
parametrii : -
returneaza : intreg
Vectorii nu sunt componente standard in limbaj si sunt simulati folosind
functiile :
create_array - creeaza un vector
parametrii : -
returneaza : ARRAY sau 0
set_field - seteaza element din vector
parametrii : ARRAY, numar_element, valoare
returneaza : -
get_field - citeste element din vector
parametrii : ARRAY, numar_element
returneaza : valoare
kill_array - elibereaza memoria
parametrii : ARRAY
returneaza : -
Din functiile standard incluse in script fac parte si functiile pentru accesul
la fisiere :
fopen - deschide fisier
parametrii : nume_fisier, mod_de_deschidere( "w", "r", "w+"(adaugare), "wb"(binary), "rb")
returneaza : FILE_HANDLE sau 0
fecho - scrie in fisier in mod text
parametrii : FILE_HANDLE, valoare
returneaza : -
fwrite - scrie in fisier in mod binar
parametrii : FILE_HANDLE, valoare
returneaza : -
fread - citeste binar
parametrii : FILE_HANDLE, numar_octeti
returneaza : valoare
fseek - muta pointer pentru citire si scriere
parametrii : FILE_HANDLE, pozitie
returneaza : -
ftell - returneaza pozitia curenta in fisier
parametrii : FILE_HANDLE
returneaza : valoare
feof - verifica atingerea sfarsitului de fisier
parametrii : FILE_HANDLE
returneaza : 1 sau 0
fclose - inchide fisier
parametrii : FILE_HANDLE
returneaza : -
Toate aceste functii sunt apelate folosind ecall si adaugand in stiva
parametrii corespunzatori folosind push. Functii pot fi adaugate foarte
usor in codul script-ului.
Sa aruncam o privire mai atenta asupra codului si sa observam cateva detalii de implementare.
(c) GarajCode
|