18. Gestiunea ecranului in mod text

2019/XX/XX in Programare in C

Bibliotecile standard ale limbajelor C si C++ contin functii pentru gestiunea ecranului. Acesta poate fi gestionat in doua moduri:

In capitolul de fata sunt prezentate functiile standard mai importante utilizate in gestiunea ecranului in mod text.

In capitolul urmator se trateaza gestiunea ecranului in mod grafic.

Toate functiile standard de gestiune a ecranului in mod text au prototipurile in fisierul conio.h.

Modul text presupune ca ecranul este format dintr-un numar de linii si un numar de coloane. In mod curent, se utilizeaza 25 de linii a 80 sau 40 de coloane fiecare. Aceasta inseamna ca ecranul are o capacitate de 25*80 = 2000 sau 25*40 = 1000 de caractere.

Pozitia pe ecran a unui caracter se defineste printr-un sistem de coordonate intregi (x, y), unde:

x este numarul coloanei in care este situat caracterul;
y este numarul liniei in care este situat caracterul.

Coltul din stanga sus al ecranului are coordonatele (1, 1). Coltul din dreapta jos al ecranului are coordonatele (80, 25) sau (40, 25).

In mod implicit, functiile de gestiune a ecranului in mod text au acces la tot ecranul. Accesul poate fi limitat la o parte din ecran utilizand asa numitele ferestre. Fereastra este un dreptunghi care este o parte a ecranului si poate fi gestionata independent de restul ecranului.

Un caracter de pe ecran, pe langa coordonate, mai are si urmatoarele atribute:

Aceste atribute sunt dependente de adaptorul grafic utilizat: (monocrom) MDA, Hercules sau (color) CGA, EGA, VGA.

Pentru adaptoarele color se pot utiliza 8 culori de fond si 16 pentru afisarea caracterelor.

Atributul unui caracter se defineste cu ajutorul formulei:

(1)

atribut = 16*culoare_fond + culoare_caracter + clipire

unde:

culoare_fond sau background este o cifra din intervalul [0, 7] si are semnificatia din tabela de mai jos;
culoare_caracter sau foreground este o cifra din intervalul [0, 15] si are semnificatia din tabela de mai jos;
clipire are valoare 128 (clipirea caracterului) sau 0 (fara clipire).

In tabelul de mai jos se indica corespondenta dintre valorile numerice si culorile definite de ele cu ajutorul relatiei (1).

Culoare Constanta simbolica Valoare
negruBLACK0
albastruBLUE1
verdeGREEN2
turcoazCYAN3
rosuRED4
purpuriuMAGENTA5
maroBROWN6
gri deschisLIGHTGREY7
gri inchisDARKGREY8
albastru deschisLIGHTBLUE9
verde deschisLIGHTGREEN10
turcoaz deschisLIGHTCYAN11
rosu deschisLIGHTRED12
purpuriu deschisLIGHTMAGENTA13
galbenYELLOW14
albWHITE15
clipireBLINK128

18.1. Setarea ecranului in mod text