Zacatecnicke dotazy v C

Michal Gregor a2x1nptda8 na email.cz
Čtvrtek Prosinec 17 22:49:40 CET 2015


1) Napsat text v nejakem editoru a ulozit v patricne kodove strance - 
Latin2, UTF8 atd
2) Otevrit v HEXa editoru a zkopirovat text  v HEXA
3) V excelu z toho vytvorit pole hexa znaku

Bod 1 a 2 lze vynechat. Jen se to chce poprat s ceskymi znaky.

(Napsat funkci do excelu je nedy opruz, ale muze to usetrit spoustu casu.)


Michal Gregor

Dne 17.12.2015 v 22:26 Pavel Kutina napsal(a):
> Zdravim,
>
> mozna me ukamenujete a mozna odkazete do prisusnych adres, ale mel bych
> par nejasnosti v uplnych zakladech C, tak jestli nekdo muzete a budete
> mit tu trpelivost... Pro poradek (hraje-li to roli, asi ano) uvadim, ze
> pisu v Energii (Arduino pro TI MSP a Stellaris, vcetne toho dementniho
> editoru).
>
> //--------------------------------------
>
> a) jak na zapis retezce nejak inteligentne? Potrebuju textove menu na
> displeji, texty mam v tomto tvaru:
>
> char mnu[][17] =
> {
>      {'P' ,'r' ,'v' ,'n' ,0xED },
>      {'D' ,'r' ,'u' ,'h' ,0xE1 },
> }
>
> Ten hex je samozrejme znak s diakritikou, pri primem zapisu ho prekladac
> preklada jako unicode a k dalsimu zpracovani podhodi dvojznak, neumim ho
> to odnaucit. Je to pouzitelne, ale cokoliv, nez par pismen se timhle
> zpusobem pise hodne pitome.
>
> Pokud jsem pouzil zapis
>
> char* mnu[] = {
>     "Prvn\xED",
>     "Druh\xE1",
> };
>
> tak to bylo vcelku OK, i -dejme tomu- pouzitelne a citelne v editoru.
> Hacek nastal v okamziku, kdy po takhle zapsanem znaku v retezci
> nasledovalo pismeno "e" - prekladac to pochopil jako unicode znak a ten
> s tou diakritikou plus to nasledujici "e" prelozil jako jeden (a
> zmrsil). Netusite nekdo, jak to obejit?
>
> //--------------------------------------
>
> b) jak funguje extern promenne? Mam vedle projektu odlozeny fonty ve
> fonts.c, v nem v podstate jen:
>
> const uint8_t simpleFont[][8] =
> {
> {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // 0x00
> {0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x00, 0x00}, // 1
> ...
>
> Kdesi v jednom header u jedne z knihoven je
> extern uint8_t simpleFont[][8];
>
> OK, funguje to - ale z ceho se linker dozvedel, kde tu promennou hedat?
> Obsah se nacita spravne, ale samotny fonts.c nemam nikde inkludovany,
> jen lezi ve stejnem adresari - to to fakt prolejza vsechny soubory v
> adresari, co kdyby tam ta deklarace nahodou nekde byla?
>
> //--------------------------------------
>
> c) asi jsem uplne nepochopil include, resp. rozdil mezi
> #include <xxx.c>
> a
> #include "xxx.c"
>
> Chapu dobre, ze pri pouziti hranatych zavorek prekladac hleda prislusne
> soubory nekde v definovanych mistech (nejake search paths, libraries
> atd.), kdezto s uvozovkami zacina prohledavat od aktualniho adresare?
>
> //--------------------------------------
>
> Mam samozrejme asi tak pet set dalsich drobnych nejasnosti, ale jednak
> se snazim googlit, druhak opisovat, ale nektere veci jsou tak obecne, ze
> ani to googleni k rozumnym vysledkum nevede. Hodne pomaha Herout, ale k
> tomu mi zase chybi druhy dil :)
>
> Jako obvykle koncim mail provolanim "Zlaty Pascal!" (ostatne soudim, ze
> Kartago...), ale je pravda, ze syntaxe C se mi zacina libit cim dal vic
> a hodne ocenuju #define, to mi v Pascalu posledni dobou znacne chybi -
> to provolani uz neni tak hlasite, jako byvalo... Ale zase ta prace s
> retezci...
>
> Diky za kazde navedeni spravnym smerem.
>
> Pavel Kutina
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list