CZECH CONVERT 2.5

Vážení čtenáři,

jak jem slíbil v dávných časech vydání první public domain verze svého programu Czech Convert 2.0, přicházím s novou verzí tohoto programu pod označením 2.5. Pro časté uživatele původní verze zajisté postačí krátce zmínit, že nová verze má přidány dva užitečné konverzní formáty, vyřešil jsem problematiku konce řádků, provedl jsem zásah do konverzní rutiny s cílem urychlení převodu a pokusil jsem se odstranit několikero menších chyb.

Další část textu zaměřím na čtenáře, kteří s mým programem z různých důvodů dosud nepracovali nebo pracovali ne příliš často. Program Czech Convert 2.5, jak již název napovídá, slouží ke konvertování znaků s českou diakritikou v textových souborech mezi různými známými kódováními. Pro časté dotazy a nedorozumění pro jistotu zdůrazním, že nejde o komplexní konverzi všech znaků různých kódovacích tabulek, ale pouze o konvertování znaků s českou diakritikou. Konkrétně jde o tyto znaky: "á, č, ď, é, ě, í, ň, ó, ř, š, ť, ů, ú, ý, ž". Prozatím tedy nepotěším slovenské kolegy ani časté uživatele německých přehlasovaných souhlásek, neboť jejich zařazení do mých tabulek dosti komplikuje nejednota znakových sad u různých verzí Čapka.

Vinou existence více druhů kódování češtiny a odlišností v ukončování řádků je stav, kdy pokud někdo začal psát na počítači česky nějaký text, musel se rozhodnout (nebo to za něj učinil autor programu), v jakém kódování chce svůj výtvor uchovat. Výsledkem je, že dnes máme gigabyty českých textů nečitelných vzájemně nejen mezi různými počítači, ale někdy i mezi různými programy na témže počítači, a to i pod stejným operačním systémem. Z tohoto důvodu jsem viděl jako velmi prospěšné napsat program, který dokáže textový soubor vytvořený pro určité kódování češtiny převést na soubor v jiném kódování.

Napsat program na převod češtiny není samozřejmě nápad originální, ale jistá specifika v mém případě přece jen má. Hlavním důvodem mé akce byla skutečnost, že v době jeho vzniku, ale vpodstatě dodnes mi není známá existence konvertoru, který by měl zabudováno kódování Čapka a tolika různých jiných kódování najednou. Nesmím zde sice opomenout existenci vynikajícího konvertoru Husita 2.0 pro Atari ST a Falcon od bratrů Křivánkových z Plzně, který má možnost přidat další kódovací tabulky (tedy teoreticky i Čapka) uživatelem, ale tabulka pro Čapka v základním balíku nebyla (alespoň jsem využil těch ostatních pro tvorbu Czech Convertu). Dalším faktorem, který hovoří pro užívání mého produktu, je skutečnost, že tento konvertuje od verze 2.5 i konce řádků, které jsou na Atari XL a XE řešeny úplně jiným způsobem, než-li je tomu u počítačů Macintosh, PC, ale i Atari TOS kompatibilních, přičemž tuto konverzi nenabízí ani Husita.

Konkrétní peripetie vzniku mého konvertoru byly následující: Zdeněk Burian mne kdysi požádal o převedení nějakého textu z Atari na PC. Mně velice vadilo, že zde nebyla možnost konverze češtiny, a tak jsem se jal, majíc v té době ještě relativně dost volného času, napsat vlastní program Czech Convert. Verze 1.0 měla velice pomalou hlavní konverzní rutinu, a proto jí trvalo převedení zadaných souborů (cca 30 kilobytů) celý den a půl! Tento výsledek mne přirozeně neuspokojil, a proto jsem o asi týden později dokončil verzi 2.0, která obsahovala tytéž vstupní a výstupní formáty, avšak mnohem rychlejší algoritmus. Výkon se převodem kódovacích tabulek z data řádků do paměťové matice zvýšil o více než 1000 procent a stejný text byl nyní dokončen za dvě a půl hodiny! To už bylo postačující k poskytnutí mého produktu široké veřejnosti. Uvědomoval jsem si však nutnost rozšíření svého konverteru do budoucna o kódování jako Macintosh nebo Windows.

Ta chvíle právě přichází, neboť dnes uveřejňuji verzi 2.5, a to opět jako public domain s eklusivním právem časopisu Flop na přednostní distribuci. Nejen, že verze 2.5 zmíněné tabulky obsahuje a navíc má urychlenou konverzní rutinu přeskakovaním znaků určitých netestovaných skupin. Jejím dalším velkým přínosem, jehož jsem dosáhl za neoddiskutovatelné podpory Honzy Křupky, je automatický převod konců řádků z formátů DOS, Unix, Mac (tj. kombinace znaků 10=LF a 13=CR) na Čapka, respektive z formátu Čapka (tj. znak 30=Return) na DOS.

Nyní už snad k vlastnímu ovládání programu. Jelikož je program napsán v Atari Basicu, lze jej spustit buď ze samospouštěcího menu nebo přímo z Basicu (případně Turbo Basicu) příkazem RUN, byl-li program předtím načten do paměti příkazem LOAD. Jako většina mých programů se i Czech Convert hlásí černou obrazovkou s barevným blikajícím názvem programu uprostřed. Dále lze postoupit stiskem klávesy START, po čemž se objeví hláška "Initializing...", který značí, že program právě provádí výše zmíněný převod kódovacích tabulek z data řádků do paměťové matice. Po několika sekundách se v horní části obrazovky začne počítač dotazovat na vstupní soubor sousovím "Source file:", kde je nutné zadat jméno zařízení, znak ":" a v případě disků i název souboru, vše bez mezer. Po vložení celého řetězce (max. 15 znaků) a stisknutí klávesy RETURN počítač položí obdobný dotaz opačného významu "Destination:", tedy specifikace výstupu, který se musí lišit od specifikace vstupu. V případě disků je vhodné předem si prověřit velikost volného prostoru, přičemž lze vycházet z předpokladu, že cílový soubor se nebude příliš lišit od zdrojového. Po úspěšném zadání výstupu je nutné tento opět potvrdit klávesou RETURN, po čemž počítač zobrazí dvě okna sloužící ke specifikaci vstupního (levé okno) a výstupního (pravé okno) kódování. Obě kódování je nutné zadat ručně jedním z následujících způsobů: pohyb kurzoru v podobě ostrých závorek nahoru a dolů je možné provádět šipkami nahoru nebo dolů a pro pohyb dolů lze použít i klávesy OPTION. Klávesa SELECT, stejně jako TAB a v příslušném směru i šipky doleva a doprava zapříčiní změnu aktivního okna, což je vyznačeno inverzním nadpisem okna. Když je výběr dokončen a vstupní formát není shodný s výstupním, stačí stisknout START, a, pokud nedojde k nějaké chybě, bude zahájen převod. Tuto skutečnst počítač ohlásí nápisem "Converting...", přičemž tato procedura může v závislosti na délce textu trvat až několik desítek minut. Po zdlouhavém čekání se objeví okénko s nápisem "Convert Finished". Z něj lze pokračovat klávesou START nebo N při potřebě další konverze, po čemž se počítač vrátí do programu za inicializaci. Klávesou SELECT nebo R bude vyvolán studený start počítače a konečně klávesa OPTION nebo D způsobí přechod počítače do DOSu. Nyní by měl být převedený text uložený na zařízení a pod jménem zadaným v DESTINATION a je možné si jej tam prohlédnout.

Doufám, že program bude sloužit ku prospěchu všech uživatelů a mohu slíbit do budoucna další berze, neboť již dnes mám několik nápadů na vylepšení, jejichž realizace by si však vyžádala poněkod podstatnější zásahy do hlavního algoritmu.

Bohdan Milar, 23. 04. 1999