BluePink BluePink
XHost
Gazduire site-uri web nelimitata ca spatiu si trafic lunar la doar 15 eur / an. Inregistrare domenii .ro .com .net .org .info .biz .com.ro .org.ro la preturi preferentiale. Pentru oferta detaliata accesati site-ul BluePink

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