abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 07:11 | IT novinky

    Elon Musk na akci We, Robot (YouTube, 𝕏) představil Robotaxi, Robovan a vylepšeného Tesla Bota (Optimus).

    Ladislav Hagara | Komentářů: 20
    dnes 06:33 | IT novinky

    Internet Archive je offline (𝕏, Bluesky, Mastodon‪). Unikly údaje 31 milionů uživatelů. Probíhal / probíhá na něj DDoS útok.

    Ladislav Hagara | Komentářů: 0
    dnes 05:22 | Komunita

    Alyssa Rosenzweig se v příspěvku na svém blogu rozepsala o hraní AAA her na Asahi Linuxu. Na YouTube je záznam její včerejší přednášky na XDC 2024 (X.Org Developer's Conference).

    Ladislav Hagara | Komentářů: 7
    dnes 04:55 | IT novinky

    Vláda schválila Národní polovodičovou strategii: Česká republika má velký potenciál stát se významným hráčem v oblasti výroby čipů, zejména v evropském měřítku. Využít tento potenciál je cílem Národní polovodičové strategie, kterou připravilo Ministerstvo průmyslu a obchodu ve spolupráci s experty, a která navazuje na evropský Akt o čipech.

    Ladislav Hagara | Komentářů: 2
    včera 18:11 | Zajímavý software

    V lete vyšiel Aeonwave 4.0, ktorý niekoľkonásobne menej vyťažuje procesor pri interpretácií priestorového zvuku než OpenAL Soft. Autor hľadá prispievateľov do knižnice libaaxopenal za účelom pridania ALC_EXT_EFX rozšírení využívaných napr. v hre Doom 3 cez port Dhewm3 v Linuxe.

    atirage21 | Komentářů: 5
    včera 15:33 | Nová verze

    Linuxová distribuce Ubuntu 24.10 „Oracular Oriole“ byla vydána. Jde o průběžné vydání s podporou 9 měsíců. Obsahuje mj. Linux 6.11 či GNOME 47 s několika odkazy na první vydání Ubuntu (4.10 „Warty Warthog“) před 20 lety. K dispozici jsou také oficiální deriváty s odlišnými výchozími desktopovými prostředími anebo balíky aplikací.

    Fluttershy, yay! | Komentářů: 2
    včera 13:55 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové major verzi 2.0 (YouTube). Důležité změny v Migration Guide.

    Ladislav Hagara | Komentářů: 3
    včera 13:33 | Nová verze

    Apache Tomcat (Wikipedie) slaví 25 let. Při té příležitosti byla vydána nová verze 11.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 24.09.0. Přehled novinek v poznámkách k vydání. O3DE má nového maskota: Odie.

    Ladislav Hagara | Komentářů: 0
    9.10. 21:11 | Humor

    Kdo chce podpořit společnost Nintendo v jejím boji proti open source softwaru (Ryujinx, yuzu, …), může si koupit Nintendo budík Alarmo za 100 dolarů. Za jak dlouho bude na budík naportován Doom?

    Ladislav Hagara | Komentářů: 22
    Rozcestník

    Dotaz: nekorektný výpis ASCII tabuľky

    Libco avatar 5.1.2013 11:13 Libco | skóre: 8 | Banska Bystrica - sk
    nekorektný výpis ASCII tabuľky
    Přečteno: 908×
    Příloha:
    Pod Ubuntu mám IDE Code::Blocks.
    V prílohe je jednoduchý program na výpis ASCII tabuľky v jazyku C.
    Problém je v tom, že vypíše len znaky s decimálnou hodnotou od 33 do 126.
    0 - 32 sú neviditeľné, to je v poriadku.
    127 - 255 sú ale viditeľné a mne to vypisuje všade 0 (nuly).
    Vie mi niekto poradiť, ako nastaviť Code::Blocks aby to fungovalo korektne?

    Myslím, že treba nastaviť encoding na výstupe, ale neviem ako.
    lama

    Řešení dotazu:


    Odpovědi

    mess avatar 5.1.2013 11:34 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Neměl bys lepší použít funkci int putchar(int c); ? Každopádně to, co uvidíš na výstupu, bude záviset na zvoleném kódování. Vždycky se ti vypíše tabulka toho, které budeš mít zrovna zvolené. Takže si vyber kódování, jehož tabulku chceš vypsat; žádné jediné správné nastavení v tomhle případě není.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
    5.1.2013 11:36 Ariczek | skóre: 5
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    problem bude s tím, že char je signed... takže jsou v něm jen hodnoty od -128 do 127. Změň tu definici na unsigned char.
    5.1.2013 11:57 Kit
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    ASCII je v rozsahu 0..127. Takže program funguje.
    Libco avatar 5.1.2013 12:37 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Myslel som aj doplnkovú tabulku. Použitie, napr. diakritika v programe.
    lama
    5.1.2013 12:48 Kit
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Pokud používáš Ubuntu, znaky s diakritikou v programu budou nejspíš v UTF-8. Tady s ASCII nepochodíš.

    Můžeš si to prověřit programem hexdump.
    pavlix avatar 5.1.2013 13:00 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Mám za to, že ASCII je jasně definované a osmibitová kódování s pevnou šířkou znaku považuju za překonaná.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    5.1.2013 15:21 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    ASCI není pevně definované - pevně je definované pouze 0 až 127, od 128 do 255 si to určuje každý sám - jsou různé verze druhé půlky....IBM, ISO, KAM, LAT

    Jinak i znaky 0 až 32 se daly tisknout a grafika je měla ve své rom paměti.

    Jinak viz tabulka:

    tabulka ascii znaků

    wiki ASCII

    Jinak k čemu to potřebuješ? Dnes se to už nepoužívá i když někde to přežívá.
    5.1.2013 16:16 l4m4
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Nesmysly.

    ASCII kódování je přesně definovnáno standarem vydaným ANSI.

    I poslední verze tohoto standardu z roku 1986 definuje sedmibitové kódování.

    Ta ‚druhá půlka‘ nemá s ASCII nic společného.

    Kdyby sis tak přečetl aspoň tu stránku na Wikipedii.
    Libco avatar 5.1.2013 16:17 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Napríklad úloha:
    3) Vytvořte program pomocí cyklu,který vám na obrazovku vypíše všechny znaky, jako byste psali např. @ (Alt+64). Program se Vám bude hodit, ptž vypíše jak české znaky, tak určité znaky, o kterých možná ani nevíte. Pořád nevíte jak nato? Je to prosté, využijte schopnosti jak dostat češtinu do programu. Detailisti mohou ještě ve výpisu ukázat, jaký kód ke kterému znaku patří.

    Úloha to priamo vyžaduje. Vo win to ide, ale v linuxe je problém.
    lama
    5.1.2013 16:30 l4m4
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Po nastavení HKCU\Control Panel\Input Method\EnableHexNumpad na 1 lze psát pomocí Alt-číselných sekvencí kterýkoli znak Unicode (není to default akorát kvůli konzervativnosti uživatelů, kterým to rozbilo některé naučené sekvence). Takže pokud to má něco vypsat, tak kompletní Unicode.
    Libco avatar 5.1.2013 17:26 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Hľadal som "HKCU" aj "Control Panel" v CodeBlocku (ďalej len CB) aj v Ubuntu 12.04.1 a nenašiel, takže neviem ako to mám nastaviť.
    V nastavení CB je možnosť nastaviť možno 40 rôznych kódovaní, to mám všetky skúšať zaradom? :-D
    Ešte sa pozriem ako je to nastavené v CB vo win7. Možno tam niečo zaujímavé nájdem.
    lama
    Jendа avatar 5.1.2013 17:35 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Ta cesta byla cesta ve windowsím registru.

    Přiznám se, že kdybych dostal podobné zadání, nevěděl bych, co s tím. Asi bych vypsal to, co ty, s tím, že na systému s UTF-8 (a dalšími vícebytovými kódováními) to prostě nebude fungovat.
    Libco avatar 5.1.2013 17:49 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Musí byť možnosť. Diakritika sa predsa bežne používa.
    lama
    Jendа avatar 5.1.2013 18:20 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Ano, ale pomocí multibyte sekvencí. Takže si můžeš napsat generátor, který vygeneruje celé UTF-8 (je toho hodně).
    5.1.2013 17:52 Kit
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Není to tak složité. Počet jedniček zleva u prvního bytu znamená, kolik má znak v UTF-8 celkově bytů. Pokud je však těch jedniček víc než 6, jedná se o speciální byte.

    Pokud je tam jen jedna jednička, je to pokračovací byte. Pokud je v nejvyšším bitu nula, je to znak ASCII.
    Libco avatar 5.1.2013 18:00 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Tak to teda dík. Budem si to musieť preložiť na drobné a otestovať.
    lama
    5.1.2013 18:14 l4m4
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Na konverzi codepoint (tj. čísla znaku) do UTF-8 najdeš spoustu zrecyklovatelných příkladů, včetně Wikipedie, to by neměl být takový problém.

    Následně když na windowsí konzoli spustíš

    chcp 65001

    měla by se přepnout do UTF-8 codepage, takže vypisování v UTF-8 by mělo začít dělat něco rozumného (s rozumným konsolovým fontem, což nemusí být nutně default).

    Poslední problém pak je, že Unicode má bratru čtyři miliardy možných znaků (codepoints) ale akorát kolem 120 tisíc je zatím přiřazeno. Vypsat jen ty přiřazené nejde bez nějaké knihovny pro práci s Unicode, která obsahuje příslušnou databázi. Na školní úlohu je to ale asi trochu overkill...
    5.1.2013 18:31 Kit
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Nestraš. Těch znaků jsou jen 2 miliardy.
    Libco avatar 5.1.2013 18:51 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Vidím, že sa už bavíte. To som rád. Aj tak si myslím, že časom nájdem jednoduché riešenie. Nemám to ako úlohu, len ma to zaujalo ako ťažko riešiteľný problém.
    lama
    5.1.2013 18:51 l4m4
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Máš pravdu, v ISO 10646 je to jen do 2^31 (byť běžná implementace je unsigned). Ale máme-li být přesní, tak Unicode jde jen do 0x10FFFF, protože má jen 16 vrstev (planes), a skoro všechno je tak jako tak přiřazeno z té první, tj. BMP. Z hlediska tazatele tím diskuse asi trochu odivergovala...

    Co platí: ASCII = 7 bitů, Unicode = spousta bitů, 8 bitů = chaos, nepoužívat.
    Libco avatar 5.1.2013 19:07 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Vidím, že si v tom doma. Teraz budem vlezlý.
    Čo tak zariadiť, aby to aj v linuxe fungovalo ako vo win?
    lama
    5.1.2013 19:15 Kit
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Napodobovat Windows v Linuxu? Tak na to zapomeň. V Linuxu to funguje dobře. Pokud chceš nástroj, který bez problému pracuje s Unicode, použij Javu, Python, PHP nebo cokoliv dalšího. V C raději jen pomocí nějaké knihovny, kterou ani neznám.
    Jendа avatar 5.1.2013 19:24 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Snad kdybys nastavil locales na nějaké non-UTF nebo použil recode/iconv pro konverzi z CP-1250 na UTF-8.
    Řešení 1× (Libco (tazatel))
    Libco avatar 5.1.2013 19:29 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Ďakujem za upresnenie páni. Súhlasím so všetkým čo ste napísali. ;-)
    Už nejaký čas viem, že nemá význam niečo znásilňovať.
    lama
    6.1.2013 10:37 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky

    Locale mu bude k ničemu, protože on na výstup zapisuje bajty. Respektive to není dostatečné.

    Přenositelné řešení je:

    1. Vybrat si znakovou sadu, kterou autor chce zobrazit (ASCII to opravdu není, to je definované jen od 0 do 127).
    2. Každý znak z dané sady převést do znakové sady terminálu, což při správně nastaveném systému odpovídá locale. Zde je třeba si uvědomit, že ne všechny znaky musí být možné převést. Prostě ne nutně je jedna sada podmnožinou druhé.
    3. Převedený znak vypsat na terminál. Zde je třeba si uvědomit, že terminál může některé znaky interpretovat jako řídící, takže se na obrazovce nemusí objevit nic nebo se může stát něco divného (třeba terminál pípne nebo se smaže nebo bude růžový).
    6.1.2013 12:06 Matlák
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Problém té úlohy je prostě v tom, že je napsaná pro Microsoft Windows a kódování znaků Windows-1250. Zadavatel zřejmě netuší, že něco jako jiná kódování existuje, natož něco jako jiné operační systémy.

    Prostě podle hesla kdo neumí učí.
    pavlix avatar 6.1.2013 14:47 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Natož že windows dávno interně přešly na nějakou formu unicode.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    pavlix avatar 6.1.2013 01:53 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    ASCI není pevně definované
    ASCI možná ne, ale ASCII docela ano :).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Libco avatar 12.1.2013 09:59 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    Přílohy:
    Chcem sa všetkým ospravedlniť za moju neznalosť.
    Uvedená úloha prináša potrebu použitia doplnkovej ASCII tabuľky (čo sa týka diakritiky) len vo windows.
    V linuxe to vôbec nie je potrebné. Tu sa diakritika vypisuje správne.
    V prílohách je vidno rozdiel.
    lama
    12.1.2013 12:22 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: nekorektný výpis ASCII tabuľky
    I windows používá UNICODE.

    Ovšem v konzoli to asi mapuje na jejich CP1250.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.