Převod kódování
Všichni, co jste kdy pracovali s češtinou na starém dobrém DOSu,
víte, že jsou velké problémy s kódováním dikritiky. Češi mají totiž
2 volby jak kódovat texty. Buď kódováním Latin 2, které je součástí
DOSu, nebo kódovací tabulkou bří. Kamenických. První metoda je
oblíbená u zahraničních firem, a druhá u Českých programátorů. Takže
nakonec to na vašem disku vypadá jak v Babylonu. A abyste mohli
soubor z jednoho programu používat v jiném, potřebujete konvertor.
Musíte totiž změnit nejen formát souboru, ale často i jeho kódování.
A my si dneska řekneme jak na to.
Nejdůležitější jsou převáděcí tabulky, které vám řeknou, který
znak v jedné abecedě odpovídá jinému v abecedě druhé. Tabulky si
vytvoříme jednoduše pomocí softwaru, který umí konvertovat z jednoho
formátu do druhého (např. T602). Nejdříve si vytvoříte soubor se
znaky 128-255. (To jsou znaky které jsou u různých znakových sad
různé.) Poté ho zkonvertujete do obou abeced a tím vytvoříte tabulky.
Tyto tabulky pak přesunete do programovacího jazyka jako pole charů,
a vytvoříte podobné procedury.
PASCAL
function ltok(const ch:char):char;
const pr:string[128] = ('⌂+üé+äľ¼+Ě++++≥Ä≡É++ôöť+±⌠ÖÜ+č⌡!+'+
'áíóúo√ĺĽ²+θň -«»šβĎ|++Γ+ďŇÍπφnε+++++-++Π!+ .řα'+
'Č≤Ó+ůÔ +|Φ+++ ŠŽ ĽÁžŔÚ+Ť+σ+Σŕ++ΩýÝŘδ+ω-÷ěμŮ ,+- ');
begin
ltok:=pr[ord(ch)-126];
end;
C++
unsigned unsigned char ktol(const unsigned char ch){
unsigned char pr[]={"⌂ČüéďäĎŤčěĚĽÍľĺÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼!«»\
|++++++|+++++++++-++++++++-+++++++++++++ αβΓπΣσμτΦθΩδω\
φεΠ≡±≥≤⌠⌡÷!o,.√n² "};
return pr[ch-127];
}
Obdobně můžete převádět i do Kameníků. Napsal jsem vám na ukázku 2
programy v C++ i v Pascalu. Jsou jen ukázkový, takže jsou celkem
pomalý, ale na ukázku to stačí. Všimněte si tam finty s funkcí
prevod , je to celkem dobrej trik.
HIPP
výheň