IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Konzola

Urobme si krátku odbočku do sveta naozajstných programátorov, ajťákov a hackerov. A tou je - konzola, čiže príkazový riadok.

K čomu je dnes, v dobe super grafiky, písanie do nejakého príkazového riadku? Hlavnými dôvodmi sú automatizácie a jednoduchosť rozhrania. Pomocou skriptov (čo sú textové popisné súbory) môžeme ľahko a rýchlo zostaviť postupnosti príkazov, ktoré zaistia riešenie nejakého problému, bez toho na to musíme programovať veľké množstvo zložitých jednoúčelových programov. Konzola je preto základom operačných systémov.

V historických dobách výpočtovej techniky (za éry sálových počítačov) bola konzola jediným prostriedkom pre komunikáciu človeka s počítačom. Komunikácia prebiehala pomocou terminálov pripojených k počítaču cez sériový port. Terminál tvoril displej, zobrazujúci texty prijaté z počítača, a klávesnica, vysielajúca kódy stlačených kláves. Prapôvodcu terminálov bol ďalekopis, umožňujúce vysielanie kódov klávesov v sériovom kóde a tlač prijatých znakov na papier. K tomu účelu vznikla množina ASCII znakov zahŕňajúca ako základné zobraziteľné znaky (anglické, to znamená bez diakritických znamienok), tak aj niekoľko riadiacich znakov slúžiacich k riadeniu tlače na ďalekopisu. Tabuľku ASCII znakov nájdete na konci tejto lekcie.

ASCII znakmi využívajú iba 7 bitové kódy. Rozšírením kódu znakov na 8 bitov bola ASCII tabuľka doplnená o ďalšie podmnožinu 128 znakov rozširujúci znaky o špeciálne znaky a znaky s diakritikou. Táto doplnková sada však nestačí na pokrytie potreby znakov všetkých jazykov a preto vzniklo viac sád rozširujúcich znakov, kódovej stránky. V českých Windows sa používa znaková sada windows-1250, túto znakovú sadu používa interne aj systém Petr. Naproti tomu konzola používa inú kódovú stránku, 850 (Latin 2). Je to pozostatok z čias systému DOS. Systém Petr preto zaisťuje pri konzolovom vstupe a výstupe textov správne prekódovanie znakových sád a nie je potrebné sa o to starať. Naraziť na nesúlad môžete v prípade znakov, ktoré sa vyskytujú v jednej sade a nie v druhej - to sú napríklad rámčeky v kóde 850. Ďalším zádrheľom môže byť to, ak vstupom alebo výstupom konzolového programu má byť text zobraziteľný vo Windows, teda rozdielne znakovej sady . Pre tieto účely je možné použiť konverzný utility, ktoré zabezpečia potrebnú konverziu znakov. Obvyklejšie v praxi je znaky s diakritikou v konzolových režimoch vôbec nepoužívať. Ale nie je to nijako zvláštne obmedzenia, pretože konzolový režim je určený počítačovým expertom pre systémové účely a nie bežné laickej verejnosti.

Ako teda začať. Vytvorte si v Petrovi nový program, s názvom napríklad Konzoly.

Konzolové programy sú trochu zvláštnou kategóriou programov. Pri ich spustenie musí operačný systém zabezpečiť otvorenie konzolového okna pre program. K tomu slúžia špeciálne príznak v súbore programu, ktorý systém informuje, že sa jedná o konzolový program a preto program nepobeží v grafickom okne. Pre zaistenie nastavenie tohto príznaku musíme v Petrovi ako jednu z prvých vecí urobiť to, že na úplný začiatok hlavné funkcie programu umiestnime prvok režim konzoly. Ten nájdeme v skupine konzola. Pred tento prvok nesmieme vložiť žiadny iný prvok, ani komentár, inak by konzolový režim nefungoval.

A teraz vložíme nejaký príkaz. Napríklad si skúsime vytvoriť programík, ktorým začínajú tutoriály snáď ku všetkým ostatným jazykom. Za prvok režim konzoly vložte prvok výstup textu na konzolu. Ako vidíte, prvok už obsahuje textovú konštantu pre možnosť zadania nejakého textu. Tak nejaký text doplňte. Tým je váš prvý konzolový program hotový. Proti iným jazykom trochu oneskorený príklad, ale nakoniec predsa. Výsledok by mohol vyzerať takto nejako:

Konzola

Keď program skúsite spustiť, preblikne čierne okno a zase zmizne. Program sa možno vykonal, systém pre neho otvoril konzolové okno, ale po ukončení programu ho zase zavrel a my nič nevideli. Preto si potrebujeme otvoriť trvalé konzolové okno. Aby sme sa vyhli nutnosti použitia príkazov pre zmenu zložky, pripravíme si zástupcu, ktorý predvolený zložku sám nastaví.

Cez systémové menu Štart / Programy / Príslušenstvo si nájdite Príkazový riadok a pravým tlačidlom myši ho skopírujte na plochu. Otvorte okno vlastností vzniknutého zástupcu a v záložke Zástupca upravte políčko Spustiť v: tak, aby ukazovalo do rovnakej zložky, ako je program ktorý vytvárate. Typicky by tu mohlo byť:% HOMEDRIVE %% HOMEPATH% \ Dokumenty \ Peter \ Program.

Spustite zástupca príkazového riadku. Objaví sa čierne okno, v ktorom uvidíte plnú cestu do priečinka s programom. Za textom cesty bliká kurzor. Skúste program opäť spustiť, tentoraz ale z konzolového okna. A to tak, že do príkazového riadku napíšete meno programu a stlačíte Enter. Na ďalšom riadku by sa mal objaviť text, ktorý ste v programe uviedli.

Konzola

Ak budete chcieť program znovu spúšťať, môžete využiť histórie príkazov - pomocou šípky hore sa môžete vrátiť k predošlému príkazu a buď ho pozmeniť (možno upravovať šípkami vľavo a vpravo, príp. Klávesmi Delete a BackSpace) alebo len znovu odoslať stlačením Enter. Pred každým spustením však nezabudnite program najskôr uložiť.

Tip: Pre uľahčenie práce so súbormi a konzolou je dobrým tipom program FAR. Je to súborový manažér umožňujúca ľahkú a prehľadnú manipuláciu so súbormi - kopírovanie, premenovanie, zmena atribútov. Ale tiež FTP prístup či hromadné porovnanie adresárov. Oproti iným podobným súborovým manažérom má jednu veľkú prednosť - konzolové okno. Konzolové výstupy z programov neustále zostávajú na obrazovke. To je jeden z podstatných dôvodov, prečo je FAR jedným z najčastejších manažérov používaných systemáky.

"Konzola ":http://www.rar.cz/far/

Okrem výstupu textu na konzolu je samozrejme možný aj vstup. K tomu slúži prvok vstup textu z konzoly. Prvok navráti text zadaný klávesnicou. Preto si do poľa premenných spoločných pripravíme textovú premennú text a do nej uložíme text načítaný z prvku pre vstup textu. Príkaz pre vstup textu doplňte na koniec programu, za minulý príkaz pre výstup textu.

Aby náš program robil niečo aspoň máličko smyslupného, pojmeme program ako kalkulátor faktoriálu (čo sú násobkami číselného radu od 1 až po zadané číslo). Zmeňte preto text v príkaze pre výstup textu na výzvu, ktorá sa zobrazí užívateľovi pred zadaním čísla, napr. "Zadajte číslo 1 až 170:". Predtým ešte zrušte prvok pre odriadkovanie, výzvu nie je vhodné na konci odřádkovat, aby zadávaný text od užívateľa pokračoval za textom výzvy.

No a nakoniec vložte ďalší príkaz pre výstup textu, ktorý bude slúžiť na zobrazenie výsledku. Najskôr zadané číslo preveďte z textového tvaru na číselné vyjadrenie, potom vypočítajte faktoriál (v Petrovi je na to priamo matematická funkcia), výsledok preveďte opäť na textový tvar a prezrite. Celý program by mohol vyzerať nejako takto:

Konzola

Keď program spustíte, zobrazí sa výzva na zadanie čísla a po zadaní čísla výsledok. V prípade zadania čísla väčšieho ako 170 program zobrazí chybu 1 # INF ako príznak pretečeniu výsledku.

Konzola

Tabuľka ASCII znakov

diek hex znak
0 $ 00 NUL
1 $ 01 SOH
2 $ 02 STX
3 $ 03 ETX
4 $ 04 EOT
5 $ 05 ENQ
6 $ 06 ACK
7 $ 07 BEL
8 $ 08 BS
9 $ 09 HT
10 $ 0A LF
11 $ 0B VT
12 $ 0C FF
13 $ 0D CR
14 $ 0E SO
15 $ 0F SI
diek hex znak
32 $ 20 medzera
33 $ 21 !
34 $ 22 "
35 $ 23 #
36 $ 24 $
37 $ 25 %
38 $ 26 &
39 $ 27 '
40 $ 28 (
41 $ 29 )
42 $ 2A *
43 $ 2B +
44 $ 2C ,
45 $ 2D -
46 $ 2E .
47 $ 2F /
diek hex znak
64 $ 40 @
65 $ 41 A
66 $ 42 B
67 $ 43 C
68 $ 44 D
69 $ 45 E
70 $ 46 F
71 $ 47 G
72 $ 48 H
73 $ 49 Aj
74 $ 4A J
75 $ 4B K
76 $ 4C L
77 $ 4D M
78 $ 4E N
79 $ 4F O
diek hex znak
96 $ 60 `
97 $ 61 a
98 $ 62 b
99 $ 63 c
100 $ 64 d
101 $ 65 e
102 $ 66 f
103 $ 67 g
104 $ 68 h
105 $ 69 i
106 $ 6A j
107 $ 6B k
108 $ 6C l
109 $ 6D m
110 $ 6E n
111 $ 6F o
16 $ 10 PODĽA
17 $ 11 DC1
18 $ 12 DC2
19 $ 13 DC3
20 $ 14 DC4
21 $ 15 NAK
22 $ 16 SYN
23 $ 17 ETB
24 $ 18 CAN
25 $ 19 EM
26 $ 1A SUB
27 $ 1B ESC
28 $ 1C FS
29 $ 1D GS
30 $ 1E RS
31 $ 1F US
48 $ 30 0
49 $ 31 1
50 $ 32 2
51 $ 33 3
52 $ 34 4
53 $ 35 5
54 $ 36 6
55 $ 37 7
56 $ 38 8
57 $ 39 9
58 $ 3A :
59 $ 3B ;
60 $ 3C <
61 $ 3D =
62 $ 3E >
63 $ 3F ?
80 $ 50 P
81 $ 51 Q
82 $ 52 R
83 $ 53 S
84 $ 54 T
85 $ 55 U
86 $ 56 V
87 $ 57 W
88 $ 58 X
89 $ 59 Y
90 $ 5A Z
91 $ 5B [
92 $ 5C \
93 $ 5D ]
94 $ 5E ^
95 $ 5F _
112 $ 70 p
113 $ 71 q
114 $ 72 r
115 $ 73 s
116 $ 74 t
117 $ 75 u
118 $ 76 v
119 $ 77 w
120 $ 78 x
121 $ 79 y
122 $ 7A z
123 $ 7B {
124 $ 7C |
125 $ 7D }
126 $ 7E ~
127 $ 7F |

 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 222x (129 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Petr Lite (sú obsiahnuté v EXE súbore, ktorý možno v programe priamo otvoriť)

 

Všetky články v sekcii
Konzola
Článok pre vás napísal Panda38
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Programátor C++, WinAPI, ASM.
Aktivity