Nová verze ATEconvertu od příspěvku č.26!
Na RESETkání v květnu jsem poprvé prezentoval můj nedokončený program ATEconvert (po staru ATEkonvert). Měl jsem za to, že ho dokončím tak za 2 měsíce, ale mýlil jsem se. Pořád na něm postupně pracuji. Od té doby, co jsem ho poprvé prezentoval bylo na něm uděláno hodně práce (opravy, změny).
Proč jsem program začal dělat?
- Dokázat si, že to zvládnu
- Získat další zkušenosti s programováním v Pythoně
K čemu to slouží?
Převod kódování znakových sad
- ascii, Amiga-E2, cp1250, cp852, iso8859-2 (Latin2), Kamenických, Koi8-čs
- utf-8, utf-8-sig (příznak BOM) v rozsahu kódování uvedených o řádek výše
Pracuje to jěšte s nasledovnými sekvencemi přechodu na nový řádek: CR+LF (PC), LF (Amiga), CR, nebo bez sekvence
Co to ještě umí?
- Najít nejdelší slovo v textu
- zúžit text (opak ne - to je část programu, která předcházela vzniku dohodle... . Rozšířit text by se dal teoreticky zrušením sekvence přechodu na nový řádek = celý text v jednom řádku a nasledovným zůžením na potřebnou sířku, čim přijdeme o všechny odstavce = text bude všude se stejnou šířkou)
Nevýhody ATEconvertu?
Programováno v Pythoně = pomalost programu, velké nároky na pamět
Předpokladaná minimální konfigurace:
- Amiga 1200 - 4 MB RAM
Doporučená konfigurace:
- Amiga 1200 + turbokarta (nezkoušeno na realním HW...)
Výhody?
Možnost převést UTF-8 bez použití PC (pokud tedy není jiný SW co to umí - nezkoumal jsem detailně)
Zde je výpis pár věcí co jsem naprogramoval posledně:
Zavedl jsem možnost přeskočení detekce kódování. Při volbě pro vyloučení detekce se bude text do volby pro výběr kódování záměrně načítat ze souboru celý a úplně od začátku (u detekce kódování se najde vždy 1. slovo s diakritikou a od tohodle slova se načte text). Zkoumal jsem, co by se mi hodil za znak na takovéhle označení pro přeskočení detekce. Použil jsem Workbench a Dopus a snažil se příjít na nějaký znak, co se nedá použít na konci jména souboru a zároveň, aby byl na klávesnici relativně snadno dostupný. Výhrálo to lomítko. Po uvedení lomítka na konci názvu souboru se provede detekce jen přitomnosti samotné signatury, která nám říká, že se jedná o kódování UTF-8. Tahle signatura je jen kombinace 3 znaků na úplném začátku souboru, co je časově minimálně náročné a pokud je soubor v kódování UTF-8 se signaturou (signatura u UTF-8 není povinná ...bohužel), vyloučím tím všechny kódování mimo UTF-8. Další co jsem zavedl je nepřevádení vyloučeného kódování v samotném výběru vstupného kódování. Urychlí se tím samotný celkový převod při načtení nového řádku, který se zobrazí do tabulky pro výběr vstupného kódování. No a poslední, co jsem udělal je v rámci možností zavedení ESCAPE SEKVENCÍ na pár míst v samotném programu. Jedná se hlavně o zobrazení průběhu převodu kódování do menu pro výběr vstupného kódování, nebo v části pro hledání nejdelšího slova v souboru (při souborech v rozsahu textů v řádech nekolik 1000 - stačí i 1000 tuhle volbu nedoporučuji u Amig bez turbokarty ) Kafe, čaj pivo? ) ) no a ještě na pár míst kde to šlo bez toho abych to celé musel přepsat ) , čím jsem u průbehu načítání převodu kódování zamezil nechtěnému problikávání obrazu, které jsem doteď řešil celkovým smazáním obrazovky a né jen malé části, kterou potřebuji (jó o téhle ASCAPE SEKVENCI se bavím - vím, že i samotné použití barvy v programu dělám pomocí ASCAPE SEKVENCE ).
Teď jsem s částí programu až do části pro samotný převod kódování v rámci první verze ATEconvertu opravdu spokojen a už pudu na závěrečnou část programu tak uvidím, jak to pude
A ještě pár fotek...
Na RESETkání v květnu jsem poprvé prezentoval můj nedokončený program ATEconvert (po staru ATEkonvert). Měl jsem za to, že ho dokončím tak za 2 měsíce, ale mýlil jsem se. Pořád na něm postupně pracuji. Od té doby, co jsem ho poprvé prezentoval bylo na něm uděláno hodně práce (opravy, změny).
Proč jsem program začal dělat?
- Dokázat si, že to zvládnu
- Získat další zkušenosti s programováním v Pythoně
K čemu to slouží?
Převod kódování znakových sad
- ascii, Amiga-E2, cp1250, cp852, iso8859-2 (Latin2), Kamenických, Koi8-čs
- utf-8, utf-8-sig (příznak BOM) v rozsahu kódování uvedených o řádek výše
Pracuje to jěšte s nasledovnými sekvencemi přechodu na nový řádek: CR+LF (PC), LF (Amiga), CR, nebo bez sekvence
Co to ještě umí?
- Najít nejdelší slovo v textu
- zúžit text (opak ne - to je část programu, která předcházela vzniku dohodle... . Rozšířit text by se dal teoreticky zrušením sekvence přechodu na nový řádek = celý text v jednom řádku a nasledovným zůžením na potřebnou sířku, čim přijdeme o všechny odstavce = text bude všude se stejnou šířkou)
Nevýhody ATEconvertu?
Programováno v Pythoně = pomalost programu, velké nároky na pamět
Předpokladaná minimální konfigurace:
- Amiga 1200 - 4 MB RAM
Doporučená konfigurace:
- Amiga 1200 + turbokarta (nezkoušeno na realním HW...)
Výhody?
Možnost převést UTF-8 bez použití PC (pokud tedy není jiný SW co to umí - nezkoumal jsem detailně)
Zde je výpis pár věcí co jsem naprogramoval posledně:
Zavedl jsem možnost přeskočení detekce kódování. Při volbě pro vyloučení detekce se bude text do volby pro výběr kódování záměrně načítat ze souboru celý a úplně od začátku (u detekce kódování se najde vždy 1. slovo s diakritikou a od tohodle slova se načte text). Zkoumal jsem, co by se mi hodil za znak na takovéhle označení pro přeskočení detekce. Použil jsem Workbench a Dopus a snažil se příjít na nějaký znak, co se nedá použít na konci jména souboru a zároveň, aby byl na klávesnici relativně snadno dostupný. Výhrálo to lomítko. Po uvedení lomítka na konci názvu souboru se provede detekce jen přitomnosti samotné signatury, která nám říká, že se jedná o kódování UTF-8. Tahle signatura je jen kombinace 3 znaků na úplném začátku souboru, co je časově minimálně náročné a pokud je soubor v kódování UTF-8 se signaturou (signatura u UTF-8 není povinná ...bohužel), vyloučím tím všechny kódování mimo UTF-8. Další co jsem zavedl je nepřevádení vyloučeného kódování v samotném výběru vstupného kódování. Urychlí se tím samotný celkový převod při načtení nového řádku, který se zobrazí do tabulky pro výběr vstupného kódování. No a poslední, co jsem udělal je v rámci možností zavedení ESCAPE SEKVENCÍ na pár míst v samotném programu. Jedná se hlavně o zobrazení průběhu převodu kódování do menu pro výběr vstupného kódování, nebo v části pro hledání nejdelšího slova v souboru (při souborech v rozsahu textů v řádech nekolik 1000 - stačí i 1000 tuhle volbu nedoporučuji u Amig bez turbokarty ) Kafe, čaj pivo? ) ) no a ještě na pár míst kde to šlo bez toho abych to celé musel přepsat ) , čím jsem u průbehu načítání převodu kódování zamezil nechtěnému problikávání obrazu, které jsem doteď řešil celkovým smazáním obrazovky a né jen malé části, kterou potřebuji (jó o téhle ASCAPE SEKVENCI se bavím - vím, že i samotné použití barvy v programu dělám pomocí ASCAPE SEKVENCE ).
Teď jsem s částí programu až do části pro samotný převod kódování v rámci první verze ATEconvertu opravdu spokojen a už pudu na závěrečnou část programu tak uvidím, jak to pude
A ještě pár fotek...
Komentovat