Zame so nizi znakov najpomembnejša spremenljivka, saj po UART-u mikrokontrolerja, ki je vgrajen v neki napravi, lahko (zanesljivo in brez težav) pošiljamo in sprejemamo le znake, ki jih je mogoče natisniti. Te znake si lahko ogledamo v standardni tabeli znakov skupaj z njihovimi ASCII kodami, ki jih predstavljajo. Pri prenosu znakovnih nizov uporabljamo znake z ASCII kodami od 32 (presledek) do 127 (DEL, brisanje). O čem govorim?
Nizi znakov
Za računalniško obdelavo in shranjevanje podatkov je bilo treba črkam in ostalim znakom določiti vrednosti, ki bi »jih zastopale« pri različnih manipulacijah s posameznimi znaki in tudi s celimi nizi znakov in s katerimi bi bili kot podatki lahko zapisani v pomnilnik. Poskusil bom preprosto pojasniti, kaj se dogaja.
Če vzamemo za primer veliko črko »A«, jo na ekranu vidimo tako, kot smo se je učili pisati in brati v prvem razredu osnovne šole. Vendar ta črka na ekranu ni narisana s prosto roko, ampak je izrisan vzorec postavljenih in izbrisanih bitov. Izposodil si bom kar Bascomov vgrajeni generator znakov, s katerim bom pojasnil narisani znak. Če bi v pomnilniku shranili postavljene in izbrisane bite pik, ki so prikazane na ekranu, bi za veliko črko »A« potrebovali vsaj pet bajtov s po 8 biti, kar je skupaj 40 točk, ki jih lahko postavimo ali izbrišemo. Postavljeni biti se bodo na ekranu izpisali v izbrani barvi te pisave.
Če sedaj »zvrnemo« znak, tako, da leži, lahko že takoj ugotovimo, kako bi s petimi bajti takšno črko lahko zapisali na ekranu (slika 3), potrebujemo le še podprogram, ki bo teh pet bajtov zapisal na pravo mesto v pomnilnik ekrana, LCD prikazovalnika ali v pomnilnik table za prikazovanje sporočil. Kako se lotiti te naloge, je odvisno od organizacije pomnilnika in pri osebnih računalnikih vse to opravijo gonilniki. Ti so pisani tako, da ustrezajo izbranemu oziroma uporabljenemu ekranu ali prikazovalniku. Če pa se s prikazom na grafičnem LCD prikazovalniku na neki naši napravi ukvarjamo sami, moramo poskrbeti tudi za ustrezne rutine, ki bodo izbrani znak glede na njegovo ASCII kodo prikazale v želeni velikosti in z želeno pisavo na želenem delu ekrana.
Iz primera na sliki 3 lepo vidimo, da je to primer preproste pisave, s katero lahko sicer pišemo in zapisano tudi preberemo, vendar so potrebe tudi po večjih in bolj bogatih pisavah, za katere bi porabili ogromno pomnilnika, če bi jih hoteli v pomnilnik zapisati na takšen način. Ker se znak zapiše v pomnilnik kot ACCII koda, pa je za takšen zapis znaka potreben en sam bajt! Ko kodo nekega znaka preberemo iz pomnilnika ali neke datoteke, lahko ta znak prikažemo v kakršnikoli pisavi in velikosti (saj s vemo, kateri znak naj se prikaže) in to je edini podatek, ki ga potrebujemo. Kljub temu, da je prikazan znak mnogokrat večji, je njegova ASCII koda še vedno ista in v pomnilniku ali datoteki je zapisana kot en sam bajt. En znak, recimo črka »S« ima svojo kodo 83, vendar lahko pri izrisu takšnega znaka na ekran pri nekoliko večji pisavi porabimo kar 32 bajtov pomnilnika oziroma v povezavi z izpisom enega samega znaka na ekranu upravljamo s prikazom 256 pik na ekranu (slika 4).
Očitno je, da je prikaz odvisen le od izbrane pisave in njene velikost, za kar poskrbi prej omenjeni gonilnik v računalniku ali posebni podprogram v naši napravi, kateremu posredujemo naslednje podatke:
- kodo znaka, ki naj se izpiše;
- položaj na ekranu, kjer naj se začne izpis;
- pisava, s katero naj bo znak zapisan;
- velikost te pisave.
Koda znaka je pri tem najbolj pomembna, saj moramo na ekranu videti in prepoznati ta znak, ne glede na velikost in obliko pisave.
Osnove programiranja Visual Basic.NET v okolju Visual Studio (3)
2016_SE247_37