| OldComp.cz https://oldcomp.cz/ |
|
| ATEkonvert https://oldcomp.cz/viewtopic.php?f=12&t=92 |
Stránka 1 z 2 |
| Autor: | Lisiak4 [ 16.05.2013, 21:33 ] |
| Předmět příspěvku: | ATEkonvert |
Na Resetkání 2013 jsem prezentoval svůj nedokončený program na převod mezi různým kódovaním textu. Měl jsem ne něj 2 připomínky. 1 od uživatele MarK, že by se mohli zobrazovat jen převody textu, který u detekce kódování nebyl vyloučen (viz 1.foto), na co jsem mu řekl své důvody, proč se zobrazuje vše. Jako správný extrémista počítám i s možností použití nepodporovaného kódovaní textu a s tím spojen libovolný výběr v použití kódování nejbližšímu, které není podporované. Narážím zde na znakové sady mimo české (ale to se nikdy nestane 2. připomínku měl Mistic Joe a kvůli ní jsem založil tohle vlákno. Jde o logiku pro zobrazení detekce sekvence přechodu na nový řádek. Na foto č.1 je detekce CR+LF (v černém rámečku). A teď se dostaneme k tomu, co bych potřeboval poradit. Na 2. foto je volba kódování souboru, který vytvoříme. Zde si vybíráme kódování, jestli chceme změnit šířku řádku a taky jestli chceme změnit sekvenci přechodu na nový řádek. Jediná povinná volba je pro kódování. Zadání volby je blbuvzdorné. Na foto jsem vybral pro vytvořený soubor změnu přechodu na nový řádek pomocí sekvence LF, co používá i OS Amigy, kódování Amiga-E2 a maximální šířku řádku na 105 znaků. Mistickovi se zdá být volba zmeny přechodu na nový řádek matoucí. Líbilo by se mu, aby vybraný přechod na nový řádek pro nový soubor byl zobrazen již v černém rámečku. Teď se zobrazuje sekvence přechodu původního souboru = vstupného souboru a ne výstupného souboru, který bude vytvořen. Já to beru jako, že vidím sekvenci vstupného souboru a sekvenci pro výstupný soubor, pokud ji chci zmenit zadám do řádku VOLBA: . Můžu to změnit. Třeba že se vybere sekvence přechodu (volitelná možnost), a po entru bude černý rámeček zobrazovat naši volbu. Pak se vybere kódování + šířka řádku (volitelná možnost). Takže by se klikalo o jeden Enter navíc.. . Zdá se Vám tedy současná logika výberu matoucí, udělali by jste to jinak? Děkuji za názory, pokud nějaké budou Příloha: Příloha:
|
|
| Autor: | panprase [ 16.05.2013, 23:35 ] |
| Předmět příspěvku: | Re: ATEkonvert |
Bych to nejdriv rad zkusil, kde to stahnu? |
|
| Autor: | misticjoe [ 17.05.2013, 09:38 ] |
| Předmět příspěvku: | Re: ATEkonvert |
No ono by to možná chtělo nějakou videoukázku. Takhle ze strohého popisu není úplně jasné, o co jde. Nicméně já bych z toho až zas takovou vědu nedělal. Možná by stačilo tuto volbu skrýt a jen dát zvolení výstupu Amiga nebo PC. |
|
| Autor: | Lisiak4 [ 17.05.2013, 15:50 ] |
| Předmět příspěvku: | Re: ATEkonvert |
No já chci, aby uživatel viděl, jaké jsou možnosti sekvencí určujících přechod na nový řádek a tahle volba je nepovinná, takže pokud se žádná nevybere, tak zůstává ta ze vstupního souboru. Ještě přemýšlím, že zavedu i zápis bez sekvence, že by se text zapsal za sebou - co to systém umožní? Dal jsem vybranou sekvenci přechodu na nový řádek k tomu určenému textu. Takhle by mohlo být jasnější, že jí je třeba změnit v řádku VOLBA: . Příloha: Jinak ATEkonvert není dokončen. Nedávno jsem se pokusil přepsat jistou část kódu, která vypadá nevzhledně. Je to to, co vypisuje text se souboru do řádků pomocí různých kódovaní. Nevzhledná část programu nese neoficiální označení Housenka. Je to celkem 13 částí skoro stejného krátkého programu pod sebou. 7 stejných pro kódování a 6 pro rozlišení UTF-8. Jenomže potom, co jsem ve WinUAE vypnul možnost FASTEST POSSIBLE, a načetl nový text pomocí volby "0" tak z neuveřitelných 15 vteřin pro Housenku se stalo ještě neuveřitelnejších 32 vteřin pro novou část kódu, kde se vše dělalo na jedném místě. Prostě musel jsem zavést pár veličin navíc, aby si to nějaké věci pamatovalo a to sežralo při těch všech převodech tolik času navíc |
|
| Autor: | Lisiak4 [ 10.08.2013, 14:23 ] |
| Předmět příspěvku: | Re: ATEkonvert |
Tak jsem dodělal jistou část ATEkonvert. Opravil pár chyb, vylepšil detekci prázdného souboru, přidal info o vstupném kódování při volbě cílového kódování, přidal do různých části info o tom, že byla udělaná špatná volba, nebo volba mimo rozsah těch možných. Dle mne zpřehlednil část, kde se vybírá sekvence přechodu na nový řádek (nebo zůstává původní). Kompletně (2x) přepsal detekci kódování na základě nedefinovaných znaků čím se mi konečně povedla první optimalizace kódu pod Amiga Pythonem (2. optimalizace v rámci Pythonu). Při vypnuté možnosti FASTEST POSSIBLE ve winUAE byli časy cca nasledovné. Nejhorší je vyloučit samotné ASCII. Musí se proběhnout všema znaky. A ještě když jsem k tomu přidal přechod sekvence na nový řádek pro Amigu tak to bylo hotové časové peklo No a přidávám nejaké to foto. Příloha: Příloha:
|
|
| Autor: | misticjoe [ 11.08.2013, 00:40 ] |
| Předmět příspěvku: | Re: ATEkonvert |
Nějaké foto si strč někam
|
|
| Autor: | Lisiak4 [ 11.08.2013, 03:43 ] |
| Předmět příspěvku: | Re: ATEkonvert |
misticjoe píše: Nějaké foto si strč někam ![]() Kde? No na OLDCOMP se tomuhle místu začalo říkat znečištěná zdířka ![]() Akorát jsem přišel na další chybu - chyba odstraněna
|
|
| Autor: | misticjoe [ 11.08.2013, 20:01 ] |
| Předmět příspěvku: | Re: ATEkonvert |
No jo, ale tam mě nemají rádi. Pošleš mi prosím poslední verzi mailem? Díky |
|
| Autor: | Lisiak4 [ 11.08.2013, 23:38 ] |
| Předmět příspěvku: | Re: ATEkonvert |
No asi jsem doposud měl špatný názor co je to znečištěná zdířka. Já tím opravdu myslel prdel, nic víc a nic mín Snad si nemyslíš, že pokud by bylo hotovo, že bych na Amigaportál tu verzi dal a sem ne. Teď si mne dostal No když už sme u toho kde koho nemají rádi. Dnes Scavenger dodržel bod č.6 v pravidlách Amigaportálu a poslal mi soukromou správu ve které mne označil jako sketu Klidně sem plácnu jeho i moji správu, ale pár lidem by se to nemuselo líbit, co respektuji. |
|
| Autor: | misticjoe [ 12.08.2013, 17:16 ] |
| Předmět příspěvku: | Re: ATEkonvert |
No vidíš - a já myslel, že si narazil na omezení zdějšího fóra - tj. max. velikost přílohy 901kB No s tím Scavengerem sice nevím o co jde, ale sem bych Portálové handrkování a půtky tahal velmi nerad. Zde jsme prostě samí slušní lidé, co žijí v sluníčkovém světě a z nějakých negentlemanských -ismů bysme mohli mít minimálně omdlévací příhodu |
|
| Autor: | Lisiak4 [ 08.09.2013, 19:17 ] |
| Předmět příspěvku: | Re: ATEkonvert |
Tak pomalu postupuji v práci na ATEkonvert. Každopádně z jistých důvodů přejmenovávám jméno programu ATEkonvert na ATEconvert. Jinak jsem zavedl 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 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... Příloha: Příloha: Příloha:
|
|
| Autor: | Lisiak4 [ 12.09.2013, 13:35 ] | ||
| Předmět příspěvku: | Re: ATEkonvert | ||
No dnes jsem dostal pár "facek" a jsem před dilemou, jestli pokračovat dál. Mám napsanou první logiku pro převod kódování mimo ASCII a mimo UTF-8. Testoval jsem to na cca 2150 rádkovém textu. Časi jsou šílené. Ve WinUAE při možnosti FASTEST POSSIBLE jsem převedl soubor za 1 min a 45 vteřin. Když jsem FASTEST POSSIBLE vypl, tak to bylo cca 23 minut uložím znak v kódování Latin2 právě s touhle hodnotou. A převod písmene je hotov Je jasný, že se to dá napsat lépe, ale to bych musel změnit převodové tabulky a to teď dělat nebudu. Jen tyhle převodové tabulky jsem dělal průběžně 3 mesíce. Nemám teď čas na to tohle předělávat v CODE mi nejde měnit barva, tak to pišu bez CODE for radek in souborVstup: #načtu řádek v souboru ____for b in radek: #načtu písmeno z řádku ________if ord(b) < 128: souborVystup.write(b); continue #pokud je hodnota písmena ASCII zapíš přímo a vrať se (načti další písmeno) ________b = a[1][ord(b) - 128] #a[1] = tabulka vstupného kódování, ve které se podívám, co je třeba na její 50. pozici za písmeno v kódování Latin2 a zapíšeme do hodnoty "b" ________if b in a[2]: souborVystup.write(chr(a[2].index(b) + 128)) #pokud je "b" v tabulce výstupném kódování a[2], najdi jeho pozici (index), převeď pozici na písmeno v Latin2 ( chr() ) a zpíš do souboru ________else: souborVystup.write(" ") #pokud b neni obsaženo v tabulce pro výstupné kódování, zapíš mezeru #s číslama 128 snižuji, nebo zvyšuji hodnotu pozice daného písmene, stačí mi pracovat jen s polovinou tabulky (128 znaků z 256) Proč to zde vše píšu? Časi jsou dle mne tak extrémní, že dle reakcí se rozhodnu, jestli to vůbec dokončím. Je pravdou, že: -parametry toho co jsem převádel: počet znaků ascii = 712222 (slovy přes 712 tisíc počet znaků mimo ascii = 83957 počet nepřevedených znaků = 2781 velikost txt souboru = 780 KB Dělám výjímku, pouštím do oběhu ALFA verzi ATEconvertu. Pokud někdo chce, múže vyzkoušet. Část programu až po samotný převod by už měla být v pořádku. Samotný převod je možný v rozmezí CP1250, ISO8859-2, KOI-8čs, Kamenických, cp852, AmigaE2. Já zkoušel jen z cp1250 na KOI8-čs. Neni podporován ani změna sekvence přechodu na nový řádek, ani zužení textu na požadovanou velikost! Při výběru kódování číst UTF-8 v rozsahu podporovaných kódování již můžete Z mým rychlích postřehů: U výstupního souboru i když se zadá cesta, uloží se tam, kde je samotný program (u vstupního souboru cesta funguje) Pokud nekdo bude zkoušet, vše na vlastní triko Alfa verze ke stažení v příloze. Nenechte se zvyklat ikonou od Prince Jasoňa
|
|||
| Autor: | misticjoe [ 12.09.2013, 18:26 ] |
| Předmět příspěvku: | Re: ATEkonvert |
Čeče, tak to máš asi něco blbě nastavené. Máš povolený JIT ve WinUAE u CPU? Mám tu svůj testovací soubor Draculy 799497 bytů (není to ten samý, co máš na testování ty? 68030, Fastest possible, JIT, 68881, Cache size 8MB, Constant jump, FPU support, No flags, Indirect. A vzhledem k tomu, že moje obsoletní verze WinUAE využívá jen jedno jádro, tak pustit na to všech 8, tak to prosfiští za vteřinku. Čili pokračuj, pokračuj! |
|
| Autor: | Lisiak4 [ 12.09.2013, 19:47 ] |
| Předmět příspěvku: | Re: ATEkonvert |
misticjoe píše: Čeče, tak to máš asi něco blbě nastavené. Máš povolený JIT ve WinUAE u CPU? Mám tu svůj testovací soubor Draculy 799497 bytů (není to ten samý, co máš na testování ty? 68030, Fastest possible, JIT, 68881, Cache size 8MB, Constant jump, FPU support, No flags, Indirect. A vzhledem k tomu, že moje obsoletní verze WinUAE využívá jen jedno jádro, tak pustit na to všech 8, tak to prosfiští za vteřinku. Čili pokračuj, pokračuj! Jo testuji to na tom samém, mám tedy u něj možná již upravenou šířku řádku, ale to by takové rozdíly házet nemělo. Trochu mi nejede přes hlavu, že indikace HDD ve WinUAE mi pořád svítí, že zapisuje, jako kdyby to šlo na plný koule... . Zkusil jsem teď poměnit pár věcí v nastavení, pořád ale ta stejná časomíra, rozhodně ne tvých 8.3 vteřiny. Ještě by mne zajímalo, pokud se jedná o tvou konfiguraci WinUAE - jestli se to dá alespoň srovnat s Amigou s turbokartou. Nemá smysl tady tunit přemrštěně Amigu pod PC |
|
| Autor: | misticjoe [ 12.09.2013, 20:35 ] |
| Předmět příspěvku: | Re: ATEkonvert |
Tak to se samozřejmě porovnat s reálnou Amigou nedá. To je taková 030 na 500Mhz Ještě bych být tebou pustil SysSpeed a prověřil rychlosti zápisu na disk. Je možné, že bude zádrhel tam. A nebo bys mohl udělat to, aby to netrpělo pomalým přenosem, že si otestuješ velikost volné RAM a pokud se vejde, tak ho budeš postupně zapisovat do RAMky a potom výsledek jen překlopíš na disk. |
|
| Stránka 1 z 2 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|